国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Packer實現(xiàn)自動化構(gòu)建UCloud云主機鏡像

zorpan / 1436人閱讀

摘要:宋體為了解決此類問題,開發(fā)了相關(guān)代碼,并被自動化構(gòu)建鏡像工具的官方倉庫所采納。宋體宋體可以運行在常用的主流操作系統(tǒng)上,它不是等軟件的替代品,而是集成并使用這些自動化配置工具在鏡像上預(yù)裝軟件等。

背景

云主機是用戶使用最高頻的云產(chǎn)品之一。隨著云主機數(shù)量的增多,如何在云主機中保證版本化部署的一致性,成為用戶常見的難題。在現(xiàn)有情況下,用戶首先需要手動或使用腳本連接主機,然后再進行部署安裝,操作流程復(fù)雜且對環(huán)境要求苛刻,難以保證一致性和可用性。

為了解決此類問題,UCloud 開發(fā)了相關(guān)代碼,并被自動化構(gòu)建鏡像工具 Packer 的官方倉庫所采納。通過 Packer 創(chuàng)建自定義鏡像,可以減少部署時間并提高可靠性,提高了用戶自動化部署的能力。8月14日,Hashicorp 官方正式發(fā)布了版本 1.4.3 ,其中包括了 UCloud Packer Builder。

Packer是什么?

Packer 是 Hashicorp 公司推出的自動化打包鏡像的輕量級開源工具,云廠商通過構(gòu)建自己的 Builder 集成到 Packer 中去,即可憑借單一配置文件,高效并行的為多云平臺創(chuàng)建一致性的鏡像。目前 Packer 已經(jīng)形成完整生態(tài),并與多家主流云廠商建立合作。

UCloud Packer 可以運行在常用的主流操作系統(tǒng)上,它不是 Chef、Puppet 等軟件的替代品,而是集成并使用這些自動化配置工具在鏡像上預(yù)裝軟件等。再配合 UCloud Terraform、UCloud CLI 等工具,可以在多云的 DevOps 場景下,實現(xiàn)基礎(chǔ)設(shè)施即代碼(IaC)、持續(xù)集成和快速交付。

如下圖所示,Packer 通過在 Provisioner 中集成 Chef、Shell、Puppet 等工具,制作包含各類軟件的不可變鏡像,供多云平臺的云主機、Docker 等使用。

Hashicorp 官方將 Packer 的優(yōu)勢描述如下:

1. 基礎(chǔ)架構(gòu)迅速部署:Packer 鏡像可以在幾秒鐘內(nèi)啟動完全配置的云主機,有利于生產(chǎn)和開發(fā);

2. 多提供商可移植性:Packer 可以為多云平臺創(chuàng)建了相同的鏡像,每個環(huán)境都能運行相同的機器鏡像,提供最終的可移植性;

3. 穩(wěn)定性高:Packer 在構(gòu)建鏡像時會為機器安裝和配置所有軟件。如果腳本中存在錯誤,可以被提前捕獲,而不是在啟動計算機幾分鐘后;

4. 可測試性高:Packer 在構(gòu)建機器鏡像后,可以快速啟動該機器鏡像并進行冒煙測試,以驗證鏡像是否正常工作。如果是正常工作,則可以確信從該鏡像啟動的任何其他計算機都能正常運行;

5. 可擴展性高:Packer 的插件機制使得它能夠自如的根據(jù)需求集成工具和拓展功能。

Packer 與傳統(tǒng)控制臺創(chuàng)建鏡像的對比:

生命周期

利用 Packer 打包鏡像的完整周期如下:

1. 用戶通過構(gòu)建 JSON 模版,執(zhí)行 packer build 命令調(diào)用 UCloud Builder;

2. 參數(shù)提前校驗保證可用性;

3. 創(chuàng)建云主機、EIP 等相關(guān)臨時資源(若配置為內(nèi)網(wǎng)環(huán)境則無需 EIP);

4. 通過 SSH 或 WinRM 等連接主機,執(zhí)行 Provisioner 進程;

5. 關(guān)閉云主機,并創(chuàng)建鏡像;

6. 復(fù)制鏡像;

7. 刪除主機、EIP 等臨時資源;

8. 執(zhí)行后處理進程(如本地鏡像導(dǎo)入等)。

使用演示

下面通過一個視頻來形象地展示 Packer 的使用方式。目標(biāo)是構(gòu)建一個裝有 nginx 應(yīng)用的鏡像,我們首先創(chuàng)建一個 test.json 文件,然后執(zhí)行如下命令一鍵構(gòu)建鏡像:

packer build test.json

Packer 對多云管理的價值

在此次 Hashicorp 官方發(fā)布前,UCloud 內(nèi)部已經(jīng)積累了一定的 Packer 使用經(jīng)驗。從中發(fā)現(xiàn),如果需要管理多云環(huán)境,或者要在公有云與私有云間維護相同的系統(tǒng),又或者構(gòu)建的是虛擬機而不是容器,Packer 都是一個很好的選擇。

通過一個具體例子來說明。下面這段代碼定義了一個 UCloud 公有云上的虛擬機鏡像,Packer 利用 ucloud-uhost Builder 配置的參數(shù),先創(chuàng)建一個干凈的 CentOS 7 系統(tǒng),再 ssh 執(zhí)行 provisioner 定義中指定的三段 shell 腳本,最終成功創(chuàng)建鏡像并返回鏡像 ID。

{ "variables": { "ucloud_public_key": "{{env `UCLOUD_PUBKEY`}}", "ucloud_private_key": "{{env `UCLOUD_SECRET`}}", "ssh_user": "root", "ssh_password": "password", "ucloud_project_id": "org-projectid", "image_id": "uimage-dpdgyw", "consul_version": "1.5.1", "region": "cn-bj2", "az": "cn-bj2-02" }, "builders": [ { "type": "ucloud-uhost", "public_key": "{{user `ucloud_public_key`}}", "private_key": "{{user `ucloud_private_key`}}", "project_id": "{{user `ucloud_project_id`}}", "region": "{{user `region`}}", "availability_zone": "{{user `az`}}", "instance_type": "n-basic-2", "source_image_id": "{{user `image_id`}}", "ssh_username": "{{user `ssh_user`}}", "ssh_password": "{{user `ssh_password`}}", "image_name": "consul-server-{{user `consul_version`}}" } ], "provisioners": [ { "type": "shell", "scripts": [ "scripts/config-yum.sh", "scripts/consul-service.sh", "scripts/consul-server.sh" ], "environment_vars": [ "CONSUL_VERSION={{user `consul_version`}}" ] } ] }

此時若有額外需求,要求將其也部署到私有云的 Kubernetes 上,該怎么辦?一種方法是把 shell 腳本改寫成對應(yīng)的 Dockerfile,但若是構(gòu)建過程非常復(fù)雜,那么改寫的過程也會很復(fù)雜,并且可能引入錯誤。

但用 Packer,只需要修改一下 builder 配置的細節(jié):

{ "variables": { "consul_version": "1.5.1" }, "builders": [ { "type": "docker", "image": "centos:7", "commit": true, "changes": [ "CMD ["tail -f /dev/null"]", "ENTRYPOINT [""]" ] } ], "provisioners": [ { "type": "shell", "scripts": [ "scripts/config-yum.sh", "scripts/consul-service.sh", "scripts/consul-server.sh" ], "environment_vars": [ "CONSUL_VERSION={{user `consul_version`}}" ] } ], "post-processors": [ [ { "type": "docker-tag", "repository": "lonegunmanb/consulServer", "tag": "0.1" }, "docker-push" ] ] }

在公有云平臺上已經(jīng)過測試的構(gòu)建腳本,就可以直接用來構(gòu)建 Docker 鏡像,并且在構(gòu)建完成后,自動打上 tag,push 到 Docker Hub 倉庫去。并且,由于 Packer 是執(zhí)行完 provisioner 后,通過 docker commit 的方式構(gòu)建鏡像,所以 Packer 的構(gòu)建只會增加額外的一個層,避免不恰當(dāng)?shù)?Dockerfile 增加多個層的問題。

Packer +Terraform,1+1>2

Packer 配合 Git、Terraform、UCloud CLI 等使用,可以實現(xiàn) DevOps 下的基礎(chǔ)設(shè)施即代碼(IaC),達到持續(xù)集成和快速交付。

如下圖,Packer 配合 Git 對鏡像的配置文件做版本化控制,從而來實現(xiàn)服務(wù)的版本化,保證了實例的最終一致性,然后利用 Packer 和 Terraform 自動化構(gòu)建服務(wù)的目的。

1. 在自動化流程中,首先變更鏡像配置倉庫,觸發(fā)執(zhí)行 Terraform 命令;

2. Terraform 執(zhí)行 packer build 命令構(gòu)建鏡像;

3. 將制作成功的鏡像查詢給 Terraform 使用;

4. 最后由 Terraform 構(gòu)建并啟動新實例替換原有的舊實例,完成服務(wù)自動化部署。

UCloud 此前已提供對 Terraform 的官方集成,可通過產(chǎn)品文檔了解更多詳情。文檔鏈接:https://docs.ucloud.cn/compute/terraform/index

總結(jié)

UCloud 通過對 Packer 的接入,提供了一種在云主機中自動化配置環(huán)境的能力,而且它可以配合 cloud-init 及一些常用的自動化部署軟件使用,進一步拓展功能。另外,通過配合UCloud Terraform 、UCloud CLI 等工具,可以實現(xiàn)對基礎(chǔ)架構(gòu)的版本化和代碼化管理,達到精準交付和快速部署以及最終一致性。

官方參考文檔地址:https://www.packer.io/docs/builders/ucloud-uhost.html

想了解更多有關(guān)基礎(chǔ)設(shè)施即代碼服務(wù)的技術(shù),歡迎掃描下方二維碼加入UCloud-Terraform/Packer 交流群,和我們一起探討關(guān)于產(chǎn)品使用的各種需求和疑問。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/110073.html

相關(guān)文章

  • 主機 UHost】操作指南:[鏡像]自定義鏡像使用Packer創(chuàng)建自定義鏡像并導(dǎo)入本地鏡像

    摘要:云主機自定義鏡像制作鏡像選中要制作鏡像的主機,然后點擊制作鏡像按鈕。鏡像的適用機型限制傳承自改自定義鏡像的母鏡像。如下圖所示,通過在中集成等工具,制作包含各類軟件的不可變鏡像,供多云平臺的云主機等使用。云主機UHost自定義鏡像制作鏡像選中要制作鏡像的主機,然后點擊制作鏡像按鈕。填寫鏡像名稱和描述,點擊確定即可創(chuàng)建鏡像。輸入鏡像名稱和描述之后,點擊確定按鈕,即可生成該主機的鏡像,此時頁面即跳...

    Tecode 評論0 收藏0
  • 概覽 主機 UHost

    摘要:概覽概覽產(chǎn)品簡介什么是云主機產(chǎn)品優(yōu)勢功能簡介計費說明主機地域與可用區(qū)機型與平臺訂單構(gòu)成配額機型與規(guī)格特性特性熱升級磁盤鏡像網(wǎng)絡(luò)內(nèi)網(wǎng)彈性外網(wǎng)監(jiān)控購買指導(dǎo)計費模式配置變更續(xù)費回收快速上手常見注意事項創(chuàng)建第一臺主機操作指南常用操作導(dǎo)航主機網(wǎng)絡(luò)磁 概覽產(chǎn)品簡介什么是云主機產(chǎn)品優(yōu)勢功能簡介計費說明主機地域與可用區(qū)機型與CPU平臺訂單構(gòu)成配額機型與規(guī)格特性特性熱升級 HotPlug磁盤鏡像網(wǎng)絡(luò)內(nèi)網(wǎng)彈性外...

    ernest.wang 評論0 收藏774
  • 概覽 主機 UHost

    摘要:概覽概覽產(chǎn)品簡介什么是云主機產(chǎn)品優(yōu)勢功能簡介計費說明主機地域與可用區(qū)機型與平臺訂單構(gòu)成配額機型與規(guī)格特性特性熱升級磁盤鏡像網(wǎng)絡(luò)內(nèi)網(wǎng)彈性外網(wǎng)監(jiān)控購買指導(dǎo)計費模式配置變更續(xù)費回收快速上手常見注意事項創(chuàng)建第一臺主機操作指南常用操作導(dǎo)航主機網(wǎng)絡(luò)磁 概覽產(chǎn)品簡介什么是云主機產(chǎn)品優(yōu)勢功能簡介計費說明主機地域與可用區(qū)機型與CPU平臺訂單構(gòu)成配額機型與規(guī)格特性特性熱升級 HotPlug磁盤鏡像網(wǎng)絡(luò)內(nèi)網(wǎng)彈性外...

    ernest.wang 評論0 收藏518
  • 主機 UHost

    摘要:產(chǎn)品簡介什么是云主機產(chǎn)品優(yōu)勢功能簡介計費說明主機地域與可用區(qū)機型與平臺訂單構(gòu)成配額機型與規(guī)格特性特性熱升級磁盤鏡像網(wǎng)絡(luò)內(nèi)網(wǎng)彈性外網(wǎng)監(jiān)控購買指導(dǎo)計費模式配置變更續(xù)費回收快速上手常見注意事項創(chuàng)建第一臺主機操作指南常用操作導(dǎo)航主機網(wǎng)絡(luò)磁盤鏡像自定產(chǎn)品簡介什么是云主機產(chǎn)品優(yōu)勢功能簡介計費說明主機地域與可用區(qū)機型與CPU平臺訂單構(gòu)成配額機型與規(guī)格特性特性熱升級 HotPlug磁盤鏡像網(wǎng)絡(luò)內(nèi)網(wǎng)彈性外網(wǎng)I...

    ernest.wang 評論0 收藏518

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<