摘要:云主機自定義鏡像制作鏡像選中要制作鏡像的主機,然后點擊制作鏡像按鈕。鏡像的適用機型限制傳承自改自定義鏡像的母鏡像。如下圖所示,通過在中集成等工具,制作包含各類軟件的不可變鏡像,供多云平臺的云主機等使用。
制作鏡像
選中要制作鏡像的主機,然后點擊制作鏡像按鈕。填寫鏡像名稱和描述,點擊確定即可創(chuàng)建鏡像。
輸入鏡像名稱和描述之后,點擊確定按鈕,即可生成該主機的鏡像,此時頁面即跳轉(zhuǎn)到鏡像管理頁面。
自制鏡像的價格和生成自制鏡像的原鏡像一致,例如,自制鏡像從UCloud提供的CentOS 6.5上創(chuàng)建,則使用該鏡像創(chuàng)建主機免費;若自制鏡像從鏡像市場的收費鏡像創(chuàng)建,則從該自制鏡像創(chuàng)建的主機仍然需要收取市場鏡像的費用。用戶的自制鏡像將為用戶長久保存在當(dāng)前地域。
請確保制作自制鏡像前,不要修改系統(tǒng)的關(guān)鍵配置。例如網(wǎng)絡(luò)相關(guān)的配置信息。系統(tǒng)關(guān)鍵配置的修改可能會引起鏡像無法制作,或制作的鏡像無法啟動等一系列問題。
鏡像管理
支持修改用戶名,備注。
從鏡像創(chuàng)建主機
可從自定義鏡像創(chuàng)建新主機。
本可用區(qū)的鏡像只能創(chuàng)建本可用區(qū)的主機。若需跨可用區(qū)創(chuàng)建,請?zhí)峤还伍_通鏡像升級到地域級服務(wù)權(quán)限。
鏡像的適用機型限制傳承自改自定義鏡像的母鏡像。例如,該鏡像的母鏡像是Windows鏡像,則無法通過此鏡像創(chuàng)建1核的主機,也無法開啟網(wǎng)絡(luò)增強。
自定義鏡像配額
注意: 使用 Packer 創(chuàng)建自定義鏡像的過程中會創(chuàng)建臨時資源,臨時資源會在構(gòu)建結(jié)束后自動刪除,故需要耗費一定資費。
概述
Packer 是 Hashicorp 公司推出的自動化打包鏡像的輕量級開源工具,云廠商通過構(gòu)建自己的 Builder 集成 Packer 中去,即可憑借單一配置文件,高效并行的為多云平臺創(chuàng)建一致性的鏡像。Packer 可以運行在常用的主流操作系統(tǒng)上,它不是 Chef、Puppet 等軟件的替代品,而是集成并使用這些自動化配置工具在鏡像上預(yù)裝軟件等。再配合 UCloud Terraform、UCloud CLI 等工具,可以在多云的DevOps場景下,實現(xiàn)基礎(chǔ)設(shè)施即代碼(IaC),持續(xù)集成和快速交付。
如下圖所示,Packer 通過在 Provisioner 中集成 Chef、Shell、Puppet 等工具,制作包含各類軟件的不可變鏡像,供多云平臺的云主機、Docker 等使用。
Packer與傳統(tǒng)控制臺創(chuàng)建鏡像的對比
Packer創(chuàng)建鏡像的生命周期
快速開始
相關(guān)鏈接
用于查詢 UCloud Packer Builder 的各種參數(shù)
用于安裝 Packer
歡迎為 UCloud Packer Builder 貢獻(xiàn)代碼
環(huán)境配置
安裝 Packer
參照官方安裝文檔安裝 Packer
安裝 Cloud CLI 工具(非必要,便于查詢基礎(chǔ)鏡像等信息)
安裝 Terraform(非必要,便于使用 packer制作的鏡像進(jìn)行資源編排)
配置默認(rèn)用戶
設(shè)置密鑰 UCLOUD_PUBLIC_KEY , UCLOUD_PRIVATE_ KEY 并設(shè)置項目ID UCLOUD_PROJECT_ID 為全局環(huán)境變量(推薦),或在 json 文件中顯式指定 public_key、 private_key、 project_id。
編寫 JSON 文件
讓我們以構(gòu)建一個安裝了 nginx 的自定義鏡像為例。首先創(chuàng)建一個干凈的空文件夾作為工作區(qū),并且切換到該目錄下,編寫一個 JSON 規(guī)格文件(eg:test.json),如下:
{
"variables": {
"ucloud_public_key": "{{env `UCLOUD_PUBLIC_KEY`}}"
"ucloud_private_key": "{{env `UCLOUD_PRIVATE_KEY`}}"
"ucloud_project_id": "{{env `UCLOUD_PROJECT_ID`}}"
}
"builders": [
{
"type": "ucloud-uhost"
"public_key": "{{user `ucloud_public_key`}}"
"private_key": "{{user `ucloud_private_key`}}"
"project_id": "{{user `ucloud_project_id`}}"
"region": "cn-bj2"
"availability_zone": "cn-bj2-02"
"instance_type": "n-basic-2"
"source_image_id": "uimage-f1chxn"
"ssh_username": "root"
"image_name": "packer-test-basic-bj"
}
]
"provisioners": [
{
"type": "shell"
"inline": [
"yum install -y nginx"
]
}
]
}
如上定義了一個 ucloud-uhost Builders 構(gòu)建器 和一個provisioners配置器 ,通過執(zhí)行命令 packer build test.json 可以實現(xiàn)一鍵構(gòu)建自定義鏡像。
UCloud 通過對的 Packer 的集成,目前已支持一鍵導(dǎo)入自制的本地鏡像到 UCloud 云平臺中。
相關(guān)鏈接
用于查詢 UCloud import Post-Processors 的各種參數(shù)
用于安裝 Packer
歡迎為 UCloud Packer Builder 貢獻(xiàn)代碼
鏡像導(dǎo)入示例
下面將使用 Packer 制作并導(dǎo)入一個 CentOS 鏡像。如下圖所示:
Packer 首先利用 QEMU Builder 制作了一個 RAW 鏡像,存放在本地配置的目錄下,之后利用 ucloud-import Post-Processors 后處理器 將本地的鏡像存放到用戶配置的 UFile 中,并自動化導(dǎo)入到 UCloud 云平臺中。
環(huán)境配置
安裝 Packer
參照官方安裝文檔安裝 Packer
配置默認(rèn)用戶
設(shè)置密鑰 UCLOUD_PUBLIC_KEY UCLOUD_PRIVATE_ KEY 并設(shè)置項目ID UCLOUD_PROJECT_ID 為全局環(huán)境變量(推薦),或在 json 文件中顯式指定 public_key、 private_key、 project_id。
安裝QEMU
參照官方安裝文檔 其中使用命令行安裝,MacOS: brew install qemu CentOs: yum install qemu-kvm Ubuntu: apt-get install qemu
創(chuàng)建一個 UFile 的 bucket 空間
參照官方文檔
編寫 JSON 文件
讓我們基于 MacOs 系統(tǒng)使用 QEMU 創(chuàng)建并導(dǎo)入一個 CentOS 6.10 的自定義鏡像為例,示例鏈接。首先創(chuàng)建一個干凈的空文件夾作為工作區(qū),并且切換到該目錄下,編寫一個 JSON 規(guī)格文件(eg:local.json),如下 :
{"variables": {
"ucloud_public_key": "{{env `UCLOUD_PUBLIC_KEY`}}"
"ucloud_private_key": "{{env `UCLOUD_PRIVATE_KEY`}}"
"ucloud_project_id": "{{env `UCLOUD_PROJECT_ID`}}"
"disk_size": "4096"
"iso_checksum": "0da4a1206e7642906e33c0f155d2f835"
"iso_checksum_type": "md5"
"iso_name": "CentOS-6.10-x86_64-minimal.iso"
"ks_path": "centos-6.10/ks.cfg"
"mirror": "http://mirrors.ustc.edu.cn/centos"
"mirror_directory": "6.10/isos/x86_64"
"template": "centos-6.10-x86_64"
}
"builders":[
{
"type": "qemu"
"boot_command": [
" text ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/{{user `ks_path`}}"
]
"boot_wait": "10s"
"disk_size": "{{user `disk_size`}}"
"http_directory": "http"
"iso_checksum": "{{user `iso_checksum`}}"
"iso_checksum_type": "{{user `iso_checksum_type`}}"
"iso_url": "{{user `mirror`}}/{{user `mirror_directory`}}/{{user `iso_name`}}"
"output_directory": "packer-{{user `template`}}-qemu"
"shutdown_command": "echo packer|sudo -S shutdown -P now"
"ssh_password": "ucloud_packer"
"ssh_port": 22
"ssh_username": "root"
"ssh_timeout": "10000s"
"vm_name": "{{ user `template` }}.raw"
"net_device": "virtio-net"
"disk_interface": "virtio"
"format": "raw"
"use_default_display": "false"
"qemuargs": [
["-display" "cocoa"]
]
}
]
"post-processors":[
{
"type":"ucloud-import"
"public_key": "{{user `ucloud_public_key`}}"
"private_key": "{{user `ucloud_private_key`}}"
"project_id": "{{user `ucloud_project_id`}}"
"region":"cn-bj2"
"ufile_bucket_name": "packer-test"
"image_name": "packer_import_test"
"image_os_type": "CentOS"
"image_os_name": "CentOS 6.10 64位"
"format": "raw"
}
]
}
如上定義了一個 qemu Builder 構(gòu)建器 和一個 ucloud-import Post-Processors 后處理器,其中配置了UFile bucket name 等信息。
編寫 Kickstart 文件
根據(jù)如上 JSON 文件 QEMU 中配置的 http_directory 和 boot_command,則需要 JSON 文件目錄下創(chuàng)建一個 ./http/centos-6.10/ 目錄用來存放 Kickstart 文件即 ks.cfg 如下:(Kickstart參考文檔)
install
cdrom
lang en_US.UTF-8
keyboard us
network --bootproto=dhcp
rootpw ucloud_packer
firewall --disabled
selinux --permissive
timezone UTC
unsupported_hardware
bootloader --location=mbr
text
skipx
zerombr
clearpart --all
autopart
auth --enableshadow --passalgo=sha512
firstboot --disabled
reboot
%packages --nobase --ignoremissing
sudo
gcc
make
%end
執(zhí)行命令行
通過執(zhí)行命令 packer build local.json 可以實現(xiàn)一鍵創(chuàng)建并導(dǎo)入自定義鏡像。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/126077.html
摘要:概覽概覽產(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)彈性外...
摘要:概覽概覽產(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)彈性外...
摘要:宋體為了解決此類問題,開發(fā)了相關(guān)代碼,并被自動化構(gòu)建鏡像工具的官方倉庫所采納。宋體宋體可以運行在常用的主流操作系統(tǒng)上,它不是等軟件的替代品,而是集成并使用這些自動化配置工具在鏡像上預(yù)裝軟件等。背景 云主機是用戶使用最高頻的云產(chǎn)品之一。隨著云主機數(shù)量的增多,如何在云主機中保證版本化部署的一致性,成為用戶常見的難題。在現(xiàn)有情況下,用戶首先需要手動或使用腳本連接主機,然后再進(jìn)行部署安裝,操作...
摘要:產(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...
閱讀 3538·2023-04-25 20:09
閱讀 3739·2022-06-28 19:00
閱讀 3060·2022-06-28 19:00
閱讀 3081·2022-06-28 19:00
閱讀 3175·2022-06-28 19:00
閱讀 2880·2022-06-28 19:00
閱讀 3047·2022-06-28 19:00
閱讀 2638·2022-06-28 19:00