摘要:云主机自定义镜像制作镜像选中要制作镜像的主机,然后点击制作镜像按钮。镜像的适用机型限制传承自改自定义镜像的母镜像。如下图所示,通过在中集成等工具,制作包含各类软件的不可变镜像,供多云平台的云主机等使用。
制作镜像
选中要制作镜像的主机,然后点击制作镜像按钮。填写镜像名称和描述,点击确定即可创建镜像。
输入镜像名称和描述之后,点击确定按钮,即可生成该主机的镜像,此时页面即跳转到镜像管理页面。
自制镜像的价格和生成自制镜像的原镜像一致,例如,自制镜像从UCloud提供的CentOS 6.5上创建,则使用该镜像创建主机免费;若自制镜像从镜像市场的收费镜像创建,则从该自制镜像创建的主机仍然需要收取市场镜像的费用。用户的自制镜像将为用户长久保存在当前地域。
请确保制作自制镜像前,不要修改系统的关键配置。例如网络相关的配置信息。系统关键配置的修改可能会引起镜像无法制作,或制作的镜像无法启动等一系列问题。
镜像管理
支持修改用户名,备注。
从镜像创建主机
可从自定义镜像创建新主机。
本可用区的镜像只能创建本可用区的主机。若需跨可用区创建,请提交工单开通镜像升级到地域级服务权限。
镜像的适用机型限制传承自改自定义镜像的母镜像。例如,该镜像的母镜像是Windows镜像,则无法通过此镜像创建1核的主机,也无法开启网络增强。
自定义镜像配额
注意: 使用 Packer 创建自定义镜像的过程中会创建临时资源,临时资源会在构建结束后自动删除,故需要耗费一定资费。
概述
Packer 是 Hashicorp 公司推出的自动化打包镜像的轻量级开源工具,云厂商通过构建自己的 Builder 集成 Packer 中去,即可凭借单一配置文件,高效并行的为多云平台创建一致性的镜像。Packer 可以运行在常用的主流操作系统上,它不是 Chef、Puppet 等软件的替代品,而是集成并使用这些自动化配置工具在镜像上预装软件等。再配合 UCloud Terraform、UCloud CLI 等工具,可以在多云的DevOps场景下,实现基础设施即代码(IaC),持续集成和快速交付。
如下图所示,Packer 通过在 Provisioner 中集成 Chef、Shell、Puppet 等工具,制作包含各类软件的不可变镜像,供多云平台的云主机、Docker 等使用。
Packer与传统控制台创建镜像的对比
Packer创建镜像的生命周期
快速开始
相关链接
用于查询 UCloud Packer Builder 的各种参数
用于安装 Packer
欢迎为 UCloud Packer Builder 贡献代码
环境配置
安装 Packer
参照官方安装文档安装 Packer
安装 Cloud CLI 工具(非必要,便于查询基础镜像等信息)
安装 Terraform(非必要,便于使用 packer制作的镜像进行资源编排)
配置默认用户
设置密钥 UCLOUD_PUBLIC_KEY , UCLOUD_PRIVATE_ KEY 并设置项目ID UCLOUD_PROJECT_ID 为全局环境变量(推荐),或在 json 文件中显式指定 public_key、 private_key、 project_id。
编写 JSON 文件
让我们以构建一个安装了 nginx 的自定义镜像为例。首先创建一个干净的空文件夹作为工作区,并且切换到该目录下,编写一个 JSON 规格文件(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 构建器 和一个provisioners配置器 ,通过执行命令 packer build test.json 可以实现一键构建自定义镜像。
UCloud 通过对的 Packer 的集成,目前已支持一键导入自制的本地镜像到 UCloud 云平台中。
相关链接
用于查询 UCloud import Post-Processors 的各种参数
用于安装 Packer
欢迎为 UCloud Packer Builder 贡献代码
镜像导入示例
下面将使用 Packer 制作并导入一个 CentOS 镜像。如下图所示:
Packer 首先利用 QEMU Builder 制作了一个 RAW 镜像,存放在本地配置的目录下,之后利用 ucloud-import Post-Processors 后处理器 将本地的镜像存放到用户配置的 UFile 中,并自动化导入到 UCloud 云平台中。
环境配置
安装 Packer
参照官方安装文档安装 Packer
配置默认用户
设置密钥 UCLOUD_PUBLIC_KEY UCLOUD_PRIVATE_ KEY 并设置项目ID UCLOUD_PROJECT_ID 为全局环境变量(推荐),或在 json 文件中显式指定 public_key、 private_key、 project_id。
安装QEMU
参照官方安装文档 其中使用命令行安装,MacOS: brew install qemu CentOs: yum install qemu-kvm Ubuntu: apt-get install qemu
创建一个 UFile 的 bucket 空间
参照官方文档
编写 JSON 文件
让我们基于 MacOs 系统使用 QEMU 创建并导入一个 CentOS 6.10 的自定义镜像为例,示例链接。首先创建一个干净的空文件夹作为工作区,并且切换到该目录下,编写一个 JSON 规格文件(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 构建器 和一个 ucloud-import Post-Processors 后处理器,其中配置了UFile bucket name 等信息。
编写 Kickstart 文件
根据如上 JSON 文件 QEMU 中配置的 http_directory 和 boot_command,则需要 JSON 文件目录下创建一个 ./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
执行命令行
通过执行命令 packer build local.json 可以实现一键创建并导入自定义镜像。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/126077.html
摘要:概览概览产品简介什么是云主机产品优势功能简介计费说明主机地域与可用区机型与平台订单构成配额机型与规格特性特性热升级磁盘镜像网络内网弹性外网监控购买指导计费模式配置变更续费回收快速上手常见注意事项创建第一台主机操作指南常用操作导航主机网络磁 概览产品简介什么是云主机产品优势功能简介计费说明主机地域与可用区机型与CPU平台订单构成配额机型与规格特性特性热升级 HotPlug磁盘镜像网络内网弹性外...
摘要:概览概览产品简介什么是云主机产品优势功能简介计费说明主机地域与可用区机型与平台订单构成配额机型与规格特性特性热升级磁盘镜像网络内网弹性外网监控购买指导计费模式配置变更续费回收快速上手常见注意事项创建第一台主机操作指南常用操作导航主机网络磁 概览产品简介什么是云主机产品优势功能简介计费说明主机地域与可用区机型与CPU平台订单构成配额机型与规格特性特性热升级 HotPlug磁盘镜像网络内网弹性外...
摘要:宋体为了解决此类问题,开发了相关代码,并被自动化构建镜像工具的官方仓库所采纳。宋体宋体可以运行在常用的主流操作系统上,它不是等软件的替代品,而是集成并使用这些自动化配置工具在镜像上预装软件等。背景 云主机是用户使用最高频的云产品之一。随着云主机数量的增多,如何在云主机中保证版本化部署的一致性,成为用户常见的难题。在现有情况下,用户首先需要手动或使用脚本连接主机,然后再进行部署安装,操作...
摘要:产品简介什么是云主机产品优势功能简介计费说明主机地域与可用区机型与平台订单构成配额机型与规格特性特性热升级磁盘镜像网络内网弹性外网监控购买指导计费模式配置变更续费回收快速上手常见注意事项创建第一台主机操作指南常用操作导航主机网络磁盘镜像自定产品简介什么是云主机产品优势功能简介计费说明主机地域与可用区机型与CPU平台订单构成配额机型与规格特性特性热升级 HotPlug磁盘镜像网络内网弹性外网I...
阅读 3513·2023-04-25 20:09
阅读 3719·2022-06-28 19:00
阅读 3035·2022-06-28 19:00
阅读 3057·2022-06-28 19:00
阅读 3130·2022-06-28 19:00
阅读 2859·2022-06-28 19:00
阅读 3014·2022-06-28 19:00
阅读 2609·2022-06-28 19:00