首頁  >  文章  >  運維  >  如何使用開源工具 Packer 便捷建立自訂鏡像

如何使用開源工具 Packer 便捷建立自訂鏡像

坏嘻嘻
坏嘻嘻原創
2018-09-18 15:45:372086瀏覽

這篇文章帶給大家的內容是關於如何使用開源工具 Packer 便捷創建自訂鏡像,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

使用Packer建立自訂映像

開源工具 Packer 能夠方便建立自訂映像。它能運行在大多數主流作業系統上。參閱本文安裝並使用Packer,輕鬆建立自訂映像。

說明

本文描述僅適用於執行Linux作業系統的伺服器。

1. 安裝Packer

您可以進入Packer 官網下載頁面,選擇下載與您作業系統對應的版本,請參閱以下步驟或者訪問Packer 官方安裝說明安裝Packer。

連線並登入Linux伺服器。如果您的伺服器為ECS Linux實例,可參閱文件 使用使用者名稱密碼驗證連線 Linux 實例。

執行指令cd /usr/local/bin進入/usr/local/bin目錄。

說明

/usr/local/bin 目錄為環境變數目錄,您可以將 Packer 安裝到該目錄下或其他已新增至環境變數的目錄下。

執行指令wget https://releases.hashicorp.com/packer/1.1.1/packer_1.1.1_linux_amd64.zip取得Packer安裝套件。您可以造訪 Packer 下載頁面以取得其他版本Packer安裝包。

執行指令unzip packer_1.1.1_linux_amd64.zip解壓縮檔。

執行指令packer -v驗證Packer安裝狀態。若Linux伺服器傳回Packer版本號,表示您已正確安裝Packer。若Linux伺服器提示command not found表示Packer未正確安裝。

2. 定義Packer範本

說明

使用Packer建立自訂映像時,需要建立一個JSON格式的模板文件。在該範本檔案中,您需要指定建立自訂鏡像的 Alicloud Image Builder(產生器)和 Provisioners(配置器)。 Packer具有多種配置器,可用於配置自訂映像的內容產生方式,以下以常用的 Shell 配置器為例,定義Packer模板。

在Linux伺服器中建立名為alicloud的json檔案並貼上以下內容。

{
     "variables": {
       "access_key": "{{env `ALICLOUD_ACCESS_KEY`}}",
       "secret_key": "{{env `ALICLOUD_SECRET_KEY`}}"
     },
     "builders": [{
       "type":"alicloud-ecs",
       "access_key":"{{user `access_key`}}",
       "secret_key":"{{user `secret_key`}}",
       "region":"cn-beijing",
       "image_name":"packer_basic",
       "source_image":"centos_7_02_64_20G_alibase_20170818.vhd",
       "ssh_username":"root",
       "instance_type":"ecs.n1.tiny",
       "internet_charge_type":"PayByTraffic",
       "io_optimized":"true"
     }],
     "provisioners": [{
       "type": "shell",
       "inline": [
         "sleep 30",
         "yum install redis.x86_64 -y"
       ]
     }]
   }

說明

您需要自訂下列參數值。

如何使用開源工具 Packer 便捷建立自訂鏡像

3. 使用Packer建立自訂映像

指定Packer範本檔案產生自訂映像:

匯入您的AccessKeyID:執行export ALICLOUD_ACCESS_KEY=您的AccessKeyID 。

匯入您的AccessKeySecret:執行export ALICLOUD_SECRET_KEY=您的 AccessKeySecret 。

執行指令packer build alicloud.json建立自訂鏡像。

範例運行結果如下,以下範例將建立含Redis的自訂鏡像:

alicloud-ecs output will be in this color.
==> alicloud-ecs: Prevalidating alicloud image name...
alicloud-ecs: Found image ID: centos_7_02_64_20G_alibase_20170818.vhd
==> alicloud-ecs: Start creating temporary keypair: packer_59e44f40-c8d6-0ee3-7fd8-b1ba08ea94b8
==> alicloud-ecs: Start creating alicloud vpc
---------------------------
==> alicloud-ecs: Provisioning with shell script: /var/folders/3q/w38xx_js6cl6k5mwkrqsnw7w0000gn/T/packer-shell257466182
alicloud-ecs: Loaded plugins: fastestmirror
---------------------------
alicloud-ecs: Total                                              1.3 MB/s | 650 kB 00:00
alicloud-ecs: Running transaction check
---------------------------
==> alicloud-ecs: Deleting temporary keypair...
Build 'alicloud-ecs' finished.
==> Builds finished. The artifacts of successful builds are:
--> alicloud-ecs: Alicloud images were created:
cn-beijing: m-2ze12578be1oa4ovs6r9

##下一步##使用自訂鏡像建立實例

以上是如何使用開源工具 Packer 便捷建立自訂鏡像的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn