最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python腳本來(lái)控制Windows Azure的簡(jiǎn)單教程

 更新時(shí)間:2015年04月16日 15:07:12   投稿:goldensun  
這篇文章主要介紹了使用Python腳本來(lái)控制Windows Azure的簡(jiǎn)單教程,由于微軟官方提供了Python SDK,使得用戶(hù)自己用Python控制Azure成為了可能,需要的朋友可以參考下

inux開(kāi)發(fā)人員經(jīng)常使用 Python 完成小塊的工作,因?yàn)槟憧梢跃帉?xiě)腳本的情況很容易。它已經(jīng)成為完成配置和部署等小任務(wù)的一個(gè)流行方式。Windows Azure,微軟的云,也沒(méi)有什么不同。通過(guò) Python SDK 所提供的可用性,Python 成為 Windows Azure 的頭等公民。讓我們看看我們?nèi)绾文軌蚴褂肞ython無(wú)需其它而只需一個(gè)Windows Azure訂閱就可以用編程方式從 vmdepot 部署一個(gè)映像到 Windows Azure上。
建立一個(gè)管理證書(shū)

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

我們假設(shè)你使用 Linux 運(yùn)行這個(gè)腳本(如果不是,請(qǐng)和我聯(lián)系,我會(huì)告訴你如何使用 Windows 來(lái)做同樣的事情)。 如果沒(méi)有安裝OpenSSL,請(qǐng)從root提示使用如下命令:

yum install openssl

以下將創(chuàng)建一個(gè) .pem 文件,之后可被翻譯成一個(gè) .cer 文件,并導(dǎo)出和上傳到Windows Azure。

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

用下面命令導(dǎo)出 .cer:

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

這樣你就得到它了,一個(gè)可以上傳到你的 Windows Azure 訂閱的管理證書(shū)。當(dāng)做完這個(gè)時(shí),你應(yīng)該已經(jīng)能夠以編程方式使用 Windows Azure 了。

用你的微軟帳戶(hù)或者 Windows Azure 活動(dòng)目錄憑據(jù)登錄到 Windows Azure。管理門(mén)戶(hù)位于https://manage.windowsazure.com 。

選擇設(shè)置標(biāo)簽:

2015416150149846.png (800×600)

從菜單中選擇管理證書(shū):

2015416150220027.png (886×169)

下方的應(yīng)用工具條包含一個(gè)上傳按鈕:

2015416150255515.png (1561×80)

選擇這個(gè)按鈕,上傳前面導(dǎo)出的 .cer 文件:

2015416150332525.png (677×480)

在“結(jié)果”面板中你應(yīng)該會(huì)看到類(lèi)似這樣的證書(shū)入口。

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

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


你可以閱讀安裝說(shuō)明獲知如何使用腳本。本文的目的是帶你領(lǐng)略 Windows Azure 的 Python API 的一些能夠幫你開(kāi)發(fā)完全自動(dòng)化部署的關(guān)鍵功能。

要使用 Windows Azure 中的任何服務(wù)管理功能,我們需要一個(gè)服務(wù)管理對(duì)象:
 

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

這對(duì)我們接下來(lái)要做的很有用。正如你能看到的,這需要一個(gè)證書(shū)和訂閱ID作為參數(shù)。
構(gòu)造一個(gè)虛擬機(jī)

虛擬機(jī)映像是一個(gè)模板,我們可以用它建立虛擬機(jī)。在本例中,我們將使用一個(gè) CentOS 映像,它是從一個(gè)由微軟的全資子公司 MS Open Tech 持有的稱(chēng)為 vmdepot 的位置拷貝過(guò)來(lái)的。


我們可以通過(guò)列出我們的訂閱中所有命名的映像來(lái)檢查我們是否之前已經(jīng)復(fù)制過(guò)指定的映像和注冊(cè)過(guò)現(xiàn)存的。
 

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

如果沒(méi)有,我們可以繼續(xù)我們的工作流程了。

下面演示了一個(gè)創(chuàng)建一個(gè)存儲(chǔ)帳戶(hù)(需要一個(gè)名稱(chēng)和位置)的簡(jiǎn)潔過(guò)程。因?yàn)槲以趥惗兀晕視?huì)使用“北歐”數(shù)據(jù)中心(位于都柏林),但在世界各地有超過(guò)10個(gè)數(shù)據(jù)中心而且還有一堆正在建設(shè)。當(dāng)存儲(chǔ)帳戶(hù)創(chuàng)建完,它允許最多 200 TB 的blob數(shù)據(jù)被存儲(chǔ),并由2512位的AES保護(hù),可以用它來(lái)訪問(wèn)帳戶(hù)。存儲(chǔ)數(shù)據(jù)的邏輯單元被稱(chēng)為是一個(gè)容器,所以我們需要?jiǎng)?chuàng)建這樣的一個(gè)容器來(lái)讓我們存儲(chǔ)我們復(fù)制的映像。
 

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()

我們現(xiàn)在應(yīng)該能夠從遠(yuǎn)程位置復(fù)制blob。這是通過(guò)使用 Windows Azure 提供的一個(gè)被稱(chēng)為 copyblob 的 API 完成的。實(shí)現(xiàn)代碼如下:
 

 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)


你可以看到,這是一個(gè)異步方法,允許從遠(yuǎn)程位置復(fù)制任何 blob。這個(gè) API 的偉大是,你可以用它來(lái)從 Windows Azure 的內(nèi)部或外部復(fù)制任何 HTTP 端點(diǎn),并且使用它沒(méi)有任何成本。缺點(diǎn)是,它沒(méi)有 SLA(譯者注:Service-Level Agreement的縮寫(xiě),服務(wù)等級(jí)協(xié)議,是網(wǎng)絡(luò)服務(wù)供應(yīng)商和客戶(hù)間的合同)。

然后 blob 就可以在你的 Windows Azure 訂閱中注冊(cè)為一個(gè)映像,你可以使用這個(gè)來(lái)創(chuàng)建多個(gè)虛擬機(jī)。

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

這個(gè)腳本將創(chuàng)建一個(gè)“云服務(wù)”的包含虛擬機(jī)的公共端點(diǎn),然后設(shè)置一個(gè)公共端點(diǎn)轉(zhuǎn)發(fā)到虛擬機(jī)的端口,這樣你就可以通過(guò) SSH 進(jìn)入他們。腳本是這樣寫(xiě)的,如果你每次選擇相同的云服務(wù),它將從端口22向上遞增來(lái)添加另一個(gè)準(zhǔn)備給SSH進(jìn)入的開(kāi)放端口來(lái)作為云服務(wù)的虛擬機(jī)。


我們正在從含有映像的 vmdepot 復(fù)制映像。通過(guò)它,我正在我的訂閱中復(fù)制和注冊(cè) CentOS 迷你映像。

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

你可以從這個(gè)地址瀏覽 vmdepot:

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

最后,我們將使用一個(gè)非常簡(jiǎn)單的算法來(lái)確定虛擬機(jī)已經(jīng)部署到云服務(wù)上,即通過(guò)查看存儲(chǔ)賬戶(hù)中相關(guān)的blob,每個(gè)虛擬機(jī)都有一個(gè)虛擬硬盤(pán)(.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)

結(jié)果是,我們可以為我們的云服務(wù)添加多個(gè)虛擬機(jī)。

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

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

根據(jù) readme.md 中的指示啟用腳本,你就可以準(zhǔn)備開(kāi)始了。

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

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

樂(lè)之!

相關(guān)文章

  • Python3爬蟲(chóng)中Selenium的用法詳解

    Python3爬蟲(chóng)中Selenium的用法詳解

    在本篇內(nèi)容里小編給大家分享了關(guān)于Python3爬蟲(chóng)中Selenium的用法詳解內(nèi)容,需要的朋友們可以參考下。
    2020-07-07
  • Python判斷是否json是否包含一個(gè)key的方法

    Python判斷是否json是否包含一個(gè)key的方法

    今天小編就為大家分享一篇Python判斷是否json是否包含一個(gè)key的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python應(yīng)用開(kāi)發(fā)之實(shí)現(xiàn)串口通信

    Python應(yīng)用開(kāi)發(fā)之實(shí)現(xiàn)串口通信

    在嵌入式開(kāi)發(fā)中我們經(jīng)常會(huì)用到串口,串口通信簡(jiǎn)單,使用起來(lái)方便,且適用場(chǎng)景多。本文為大家準(zhǔn)備了Python實(shí)現(xiàn)串口通信的示例代碼,需要的可以參考一下
    2022-11-11
  • 中秋送禮分配不均這款python刮刮卡完美解決問(wèn)題

    中秋送禮分配不均這款python刮刮卡完美解決問(wèn)題

    這篇文章主要介紹了用Python實(shí)現(xiàn)一個(gè)抽獎(jiǎng)刮刮卡來(lái)解決給小朋友的禮物不均,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2021-09-09
  • 詳解python 內(nèi)存優(yōu)化

    詳解python 內(nèi)存優(yōu)化

    這篇文章主要介紹了python 內(nèi)存優(yōu)化的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Jupyter notebook之如何快速打開(kāi)ipynb文件

    Jupyter notebook之如何快速打開(kāi)ipynb文件

    這篇文章主要介紹了Jupyter notebook之如何快速打開(kāi)ipynb文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python中scrapy下載保存圖片的示例

    Python中scrapy下載保存圖片的示例

    在日常爬蟲(chóng)練習(xí)中,我們爬取到的數(shù)據(jù)需要進(jìn)行保存操作,在scrapy中我們可以使用ImagesPipeline這個(gè)類(lèi)來(lái)進(jìn)行相關(guān)操作,本文主要介紹了scrapy下載保存圖片,感興趣的可以了解一下
    2021-07-07
  • 詳解Python3.8+PyQt5+pyqt5-tools+Pycharm配置詳細(xì)教程

    詳解Python3.8+PyQt5+pyqt5-tools+Pycharm配置詳細(xì)教程

    這篇文章主要介紹了Python3.8+PyQt5+pyqt5-tools+Pycharm配置詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-11-11
  • Python機(jī)器學(xué)習(xí)之決策樹(shù)算法

    Python機(jī)器學(xué)習(xí)之決策樹(shù)算法

    這篇文章主要為大家詳細(xì)介紹了Python機(jī)器學(xué)習(xí)之決策樹(shù)算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python 使用值來(lái)排序一個(gè)字典的方法

    python 使用值來(lái)排序一個(gè)字典的方法

    這篇文章主要介紹了python 使用值來(lái)排序一個(gè)字典的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-11-11

最新評(píng)論

苗栗县| 松潘县| 天祝| 昭通市| 海丰县| 黑山县| 夏邑县| 青龙| 鸡东县| 岳西县| 芜湖市| 遂平县| 多伦县| 泾源县| 清徐县| 博湖县| 东莞市| 龙岩市| 嘉兴市| 鄂伦春自治旗| 广昌县| 资兴市| 五华县| 伊金霍洛旗| 衢州市| 高邮市| 抚顺县| 仁寿县| 肇源县| 云安县| 遂昌县| 沙湾县| 烟台市| 五华县| 沙田区| 宾阳县| 曲沃县| 郸城县| 北辰区| 开远市| 凤凰县|