如何使用開源工具 Packer 便捷創建自定義鏡像

本篇文章給大家帶來的內容是關于如何使用開源工具 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

下一步

使用自定義鏡像創建實例

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享