Ansible 怎麼可以缺少阿里雲

2021-09-02 21:08:33 字數 2384 閱讀 3347

摘要: 雲計算時代devops的協同開發、自動構建、持續整合已經被越來越多的使用者和企業所接受,作為devops的核心自動化工具之一,ansible 為自動化運維提供了乙個良好的解決方案。而作為雲計算服務的重要提供商,阿里雲與ansible的牽手更是對ansible以及devops豐富和完善。

雲計算時代devops的協同開發、自動構建、持續整合已經被越來越多的使用者和企業所接受,作為devops的核心之一,自動化更是隨著自動化工具的不斷成熟而愈發強大。自動化的目標是將整個交付流程盡其所能的自動化,包括基礎設施的自動化,應用部署的自動化,應用整合的自動化等。

作為自動化工具的重要成員之一,ansible 為自動化運維提供了乙個良好的解決方案。

眾所周知,ansible是乙個it自動化運維的工具,它的最主要的特點是可以通過ssh協議實現對應用伺服器系統的配置,應用的部署以及一些更高階it任務的執行,如持續部署,開機回滾等。除此之外,ansible還有乙個重要的特性,可以通過**來實現對基礎設施的定義,生產和管理,而這就是所謂的基礎設施即**(infrastracture as code)簡寫為iac。

作為devops的重要自動化工具之一,ansible怎麼可以缺少雲計算服務的重要提供商-阿里雲呢?本文將向大家詳細展示如何基於 ansible 實現對阿里雲基礎設施的定義和管理。

基於ansible實現對阿里雲基礎設施管控的基本思路:利用ansible module設計和實現面向阿里雲服務的provider,使其可以解析使用者在playbooks中定義的資源引數,並通過這些引數呼叫對應雲服務的api,進而實現對阿里雲對應資源的管控。

下圖是基於ansible快速搭建阿里雲ecs instance,vpc以及其他資源的實現原理流程圖:

從上圖可以看出,整個阿里雲資源搭建的實現過程總共需要五步:

使用者以**的形式定義阿里雲資源,主要體現為輸入各個資源對應的引數,如映象id,例項型別,vpc網段,eip頻寬等;

定義完成後,執行ansible-playbook命令,執行定義好的playbook;

ansible解析playbook,並確定playbook所使用的provider;

通過provider呼叫對應的資源module,並在module中重新組裝引數和構建請求;

呼叫阿里雲的開放api,實現對阿里雲對應資源的有效管控。

在了解了ansible provider of alicloud的基本實現原理後,接下來介紹如何使用。

首先安裝 ansible provider of alicloud。根據不同使用者的需求,我們為ansible provider of alicloud提供了兩種簡單的安裝方式。

安裝完畢後,即可編寫playbook實現對阿里雲資源的管控了。

ansible provider of alicloud安裝成功後,即可通過編寫playbooks來定義阿里雲資源了。playbook的編寫必須符合yaml語法,下面是建立阿里雲instance的playbook alicloud.yml:

如上所示,我們定義了一台在北京可用區的 centos 的 instance。

更多有關module的內容和例項,可參考 ansible-alicloud文件.

資源定義完畢後,執行如下的命令即可實現對阿里雲ecs instance的快速建立:

值得注意的是,alicloud_instancemodule提供了count引數,以實現對 ecs instance 的批量建立。

playbook執行結束後,module 將會在向您輸出當前建立的所有 instance 的 id,ip。 基於id和ip可進一步實現對instance的管理,如啟動,停止,部署應用等。

除此之外,我們將提供更多的基於ansible provider的最佳實踐,敬請期待。

devops的不斷發展造就了自動化工具的不斷豐富和完善,ansible provider of alicloud 正是 ansible 中不可或缺的一部分。為此,我們也將根據使用者的需求以及阿里雲產品功能的不斷發展,提供更加豐富和強大的 module,幫助使用者尤其是ansible使用者簡化基礎設施構建的流程,進而為整個業務流程的自動化貢獻力量。

ansilbe alicloud provider github.

ansible docs.ansilbe 

alicloud docs

Jboss 應用中缺少宋體怎麼辦

環境jboss4.2.2 系統centos7.2 1.新搭建的環境,但是沒有字符集,在windows上的電腦上覆制了乙份宋體,打成zip包 將zip包上傳到伺服器中,解壓 2.在 usr share fonts下新建乙個資料夾,存放宋體這個字型 mkdir share share fonts win...

linux編譯缺少庫檔案怎麼辦

查詢電腦本地是否有該庫檔案。首先查詢是否有對應的庫檔案 sudo find usr name libgcc s.so結果如下所示 usr lib gcc x86 64 linux gnu 7 32 libgcc s.so usr lib gcc x86 64 linux gnu 7 libgcc s...

Jboss 應用中缺少宋體怎麼辦

環境jboss4.2.2 系統centos7.2 1.新搭建的環境,但是沒有字符集,在windows上的電腦上覆制了乙份宋體,打成zip包 將zip包上傳到伺服器中,解壓 2.在 usr share fonts下新建乙個資料夾,存放宋體這個字型 mkdir share share fonts win...