亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用Python腳本來控制Windows Azure的簡單教程

系統 1853 0

inux開發人員經常使用 Python 完成小塊的工作,因為你可以編寫腳本的情況很容易。它已經成為完成配置和部署等小任務的一個流行方式。Windows Azure,微軟的云,也沒有什么不同。通過 Python SDK 所提供的可用性,Python 成為 Windows Azure 的頭等公民。讓我們看看我們如何能夠使用Python無需其它而只需一個Windows Azure訂閱就可以用編程方式從 vmdepot 部署一個映像到 Windows Azure上。
建立一個管理證書

任何與 Windows Azure 的交互都需要兩個東西:

我們假設你使用 Linux 運行這個腳本(如果不是,請和我聯系,我會告訴你如何使用 Windows 來做同樣的事情)。 如果沒有安裝OpenSSL,請從root提示使用如下命令:

            
yum install openssl


          

以下將創建一個 .pem 文件,之后可被翻譯成一個 .cer 文件,并導出和上傳到Windows Azure。

            
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout elasta.pem -out elasta.pem


          

用下面命令導出 .cer:

            
openssl x509 -inform pem -in elasta.pem -outform der -out elasta.cer


          

這樣你就得到它了,一個可以上傳到你的 Windows Azure 訂閱的管理證書。當做完這個時,你應該已經能夠以編程方式使用 Windows Azure 了。

用你的微軟帳戶或者 Windows Azure 活動目錄憑據登錄到 Windows Azure。管理門戶位于https://manage.windowsazure.com 。

選擇設置標簽:

使用Python腳本來控制Windows Azure的簡單教程_第1張圖片

從菜單中選擇管理證書:

使用Python腳本來控制Windows Azure的簡單教程_第2張圖片

下方的應用工具條包含一個上傳按鈕:

2015416150255515.png (1561×80)

選擇這個按鈕,上傳前面導出的 .cer 文件:

使用Python腳本來控制Windows Azure的簡單教程_第3張圖片

在“結果”面板中你應該會看到類似這樣的證書入口。

2015416150413342.png (1219×49)
為了有助于解釋這篇文章,我已經寫了一個Python腳本,可在這里下載:

https://github.com/elastacloud/python-vmdepot-deploy


你可以閱讀安裝說明獲知如何使用腳本。本文的目的是帶你領略 Windows Azure 的 Python API 的一些能夠幫你開發完全自動化部署的關鍵功能。

要使用 Windows Azure 中的任何服務管理功能,我們需要一個服務管理對象:
?

            
self.sms = ServiceManagementService(vars.subscription_id, vars.certificate_path)

          

這對我們接下來要做的很有用。正如你能看到的,這需要一個證書和訂閱ID作為參數。
構造一個虛擬機

虛擬機映像是一個模板,我們可以用它建立虛擬機。在本例中,我們將使用一個 CentOS 映像,它是從一個由微軟的全資子公司 MS Open Tech 持有的稱為 vmdepot 的位置拷貝過來的。


我們可以通過列出我們的訂閱中所有命名的映像來檢查我們是否之前已經復制過指定的映像和注冊過現存的。
?

            
def _image_by_name(self, name):
  # return the first one listed, which should be the most stable
  for i in self.sms.list_os_images():
   if name in i.name:
    return True
  return False

          

如果沒有,我們可以繼續我們的工作流程了。

下面演示了一個創建一個存儲帳戶(需要一個名稱和位置)的簡潔過程。因為我在倫敦,所以我會使用“北歐”數據中心(位于都柏林),但在世界各地有超過10個數據中心而且還有一堆正在建設。當存儲帳戶創建完,它允許最多 200 TB 的blob數據被存儲,并由2512位的AES保護,可以用它來訪問帳戶。存儲數據的邏輯單元被稱為是一個容器,所以我們需要創建這樣的一個容器來讓我們存儲我們復制的映像。
?

            
self._create_storage_account_if_not_exists(vars.storage_account_name, vars.deploy_location)
account_key = self._get_primary_account_key(vars.storage_account_name)
self._create_container_if_not_exists()

          

我們現在應該能夠從遠程位置復制blob。這是通過使用 Windows Azure 提供的一個被稱為 copyblob 的 API 完成的。實現代碼如下:
?

            
 self.blob_service.copy_blob(container_name=Constants.storage_container_name, blob_name=Constants.vhd_blob_name, x_ms_copy_source=Constants.centos_minimal_image)
self._wait_for_async_copy(Constants.storage_container_name, Constants.vhd_blob_name)

          


你可以看到,這是一個異步方法,允許從遠程位置復制任何 blob。這個 API 的偉大是,你可以用它來從 Windows Azure 的內部或外部復制任何 HTTP 端點,并且使用它沒有任何成本。缺點是,它沒有 SLA(譯者注:Service-Level Agreement的縮寫,服務等級協議,是網絡服務供應商和客戶間的合同)。

然后 blob 就可以在你的 Windows Azure 訂閱中注冊為一個映像,你可以使用這個來創建多個虛擬機。

            
self.sms.add_os_image(label=Constants.image_name, media_link=storageimage_uri, name=Constants.image_name, os='Linux')


          

這個腳本將創建一個“云服務”的包含虛擬機的公共端點,然后設置一個公共端點轉發到虛擬機的端口,這樣你就可以通過 SSH 進入他們。腳本是這樣寫的,如果你每次選擇相同的云服務,它將從端口22向上遞增來添加另一個準備給SSH進入的開放端口來作為云服務的虛擬機。


我們正在從含有映像的 vmdepot 復制映像。通過它,我正在我的訂閱中復制和注冊 CentOS 迷你映像。

https://vmdepotneurope.blob.core.windows.net/linux-community-store/community-32167-508624a5-01d1-4d57-b109-df2af5b4b232-1.vhd

你可以從這個地址瀏覽 vmdepot:

http://vmdepot.msopentech.com/List/Index

最后,我們將使用一個非常簡單的算法來確定虛擬機已經部署到云服務上,即通過查看存儲賬戶中相關的blob,每個虛擬機都有一個虛擬硬盤(.vhd)。
?

            
index = -1
blob_exists = True
while blob_exists:
 index += 1
   blob_exists = self._blob_exists(Constants.storage_container_name, "elastavm" + str(index) + ".vhd")
 
vm_media_link = self._make_blob_url(vars.storage_account_name, Constants.storage_container_name, "elastavm" + str(index) + ".vhd")
 
self._create_vm_linux(vars.storage_account_name, vars.storage_account_name, "elastavm" + str(index), vm_media_link, vars.deploy_location, index, vars.username, vars.password)

          

結果是,我們可以為我們的云服務添加多個虛擬機。

以上都是從 Setup.py 文件完成的。你可以在下面地址的文件中看到上面所有代碼:

https://github.com/elastacloud/python-vmdepot-deploy/blob/master/elastacloud/pyvms/Setup.py

根據 readme.md 中的指示啟用腳本,你就可以準備開始了。

你可以在下面地址克隆 Windows Azure 的 Python SDK: :

https://github.com/WindowsAzure/azure-sdk-for-python

樂之!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲一区中文字幕 | 欧美一区精品二区三区 | 国产精品原创 | 国产精品九九久久精品女同 | 久草香蕉视频在线观看 | 97免费在线 | 色综合色狠狠天天久久婷婷基地 | 中文字幕亚洲精品第一区 | 天堂成人精品视频在线观 | 777奇米影视久久激情日韩欧美 | 欧美精品观看 | 国产高清一区 | 国产精品一国产精品 | 中文字幕一区二区三区 精品 | 中文字幕欧美一区 | 成年男女免费视频网站 | 中文字幕日本精品一区二区三区 | 四虎国产精品免费视 | 精品日本亚洲一区二区三区 | 97国产在线视频 | 久久精品视频播放 | 精品日韩一区二区 | 亚洲视频一区在线观看 | 999人在线精品播放视频 | 欧美日韩免费做爰视频 | 国内精品视频一区二区八戒 | 色婷五月 | 欧美在线一级毛片视频 | 曰批免费视频播放在线看片 | 狠狠色丁香婷婷久久综合不卡 | 伊人色综合久久天天 | 国产高清美女一级a毛片久久 | 亚洲一区二区三区久久久久 | 久久精品网站免费观看调教 | 欧美a级成人淫片免费看 | 99久在线| 久久午夜青青草原影院 | 一级女人18片毛片免费视频 | 97久久人人 | 国产成人v片视频在线观看 国产成人爱片免费观看视频 | 亚洲人人草 |