天天看點

基于資源編排一鍵傳遞應用

首先引入三個概念:meta-data、cloud-init 和 user-data。

meta-data

meta-data 主要包括虛拟機自身的一些常用屬性,如 hostname、網絡配置資訊、資源 instanceid 等,其主要的形式為鍵值對。可以通過通路下面的位址查詢 meta-data 資訊

cloud-init

cloud-init 是一個在雲主機啟動時操作和定制雲主機環境的包。它可以在雲主機啟動時實作如設定主機的語言環境,設定主機 hostname,配置網絡,下載下傳一些包并進行安裝等功能,免去了使用者自己手動設定的麻煩。cloud-init 實作這些功能的基礎是 user-data。

user-data

本文正是利用了 cloud-init 的實作方式,結合資源編排,将建構應用的腳本寫入到 user-data 中,進而實作對應用的一鍵建構。

基于資源編排一鍵建構應用的大緻步驟如下:

熟悉在雲伺服器上搭建應用的流程,并編寫出該流程對應的 shell 腳本

定義資源編排基礎模闆,用于搭建應用運作的基礎服務

将已編寫好的搭建應用的 shell 腳本添加到基礎模闆的資源類型<code>aliyun::ecs::instance</code>的 userdata 屬性中

完成模闆的建立,輸入定義的參數,完成基于資源編排的應用建構

目前雲資源建構的網絡類型隻支援 vpc,可選區域僅支援華南1、華北2和華東2,即<code>regionid</code>隻支援<code>cn-shenzhen</code>、<code>cn-beijing</code>和<code>cn-shanghai</code>。其它的 region 和網絡類型,我們也會盡快的上線。

為了便于說明,本文将以在 centos 6上建構 wordpress 作為建構應用的示例。

搭建 wordpress,首先需要安裝 wordpress 所依賴的基礎服務:apache、mysql 以及 php,然後下載下傳最新版本的 wordpress 包并進行安裝,最後根據 wordpress的搭建需求,對基礎依賴服務進行相應的配置。

以下是在 centos 6上搭建 wordpress 的詳細 shell 腳本:

定義一個資源編排模闆,并基于該模闆建構 wordpress 應用。

首先我們建立一個 ecs 資源模闆。在模闆中定義我們需要建立的資源:

aliyun::ecs::eipassociation

<a href="https://ros.console.aliyun.com/#/resourcetype/detail/aliyun::ecs::eipassociation/metadata">綁定一個公網 ip</a>

aliyun::ecs::eip

<a href="https://ros.console.aliyun.com/#/resourcetype/detail/aliyun::ecs::eip/metadata">申請一個彈性公網 ip</a>

aliyun::ecs::securitygroup

<a href="https://ros.console.aliyun.com/#/resourcetype/detail/aliyun::ecs::securitygroup/metadata">建立一個安全組</a>

aliyun::ecs::securitygroupingress

aliyun::ecs::instance

<a href="https://ros.console.aliyun.com/#/resourcetype/detail/aliyun::ecs::instance/metadata">建立一個 ecs 執行個體</a>

值得注意的是,目前雲資源的建構隻支援 vpc 環境,是以在模闆中您可以直接使用已有 vpc 環境或者建構新的 vpc 環境。建立 vpc 環境時,模闆中應該增加對如下資源類型的定義:

aliyun::ecs::vpc

<a href="https://ros.console.aliyun.com/#/resourcetype/detail/aliyun::ecs::vpc/metadata">建立專有網絡</a>

aliyun::ecs::vswitch

<a href="https://ros.console.aliyun.com/#/resourcetype/detail/aliyun::ecs::vswitch/metadata">建立交換機</a>

将已編寫好的建構 wordpress 的運作腳本加入到資源類型<code>aliyun::ecs::instance</code>的 userdata 屬性中,以完成對建構 wordpress 模闆的建立。

為了安全和友善起見,将資料庫的名稱、使用者名及其密碼作為輸入參數。

以下是利用已有 vpc 環境建構 wordpress 的模闆:

您也可以通過建立一個 vpc 環境來建構 wordpress:

完成模闆的建立後,根據 stack 資源的建立步驟,輸入必要的參數,點選<code>建立</code>按鈕,即可完成資源的建立以及應用的建構。

資源建立完成後,根據資源建立的輸出結果,在浏覽器中輸入<code>http://[publicip]/wp-admin/install.php</code>即可通路搭建好的 wordpress 應用。在下一篇中我們将使用阿裡雲的 rds 來替換 mysql 來實作應用的傳遞。