运用代码管理基础架构之镜像利器(一)
第二十期 启迪云高级交付经理 董乐
首先我们基础架构的组成主要是计算、存储和网络。在我们以往的模式中主要使用的是虚拟化技术。
无论哪种虚拟化技术在实际生产环境中主要都是通过模板来提高交付效率,模板主要由操作系统和应用组成。
什么是Packer
Packer是一个开源工具,从单一源配置为多个平台创建相同的机器映像。 Packer是轻量级的,可在每个主要操作系统上运行,并且可以并行创建多个平台的机器映像。Packer不会取代像Chef或Puppet这样的配置管理。事实上,在创建镜像时,Packer可以使用Chef或Puppet等工具在镜像上安装软件。
镜像是单个静态单元,包含预先配置的操作系统和已安装的软件,用于快速创建新的运行机器。可以针对不同的平台创建不同格式的镜像。包括EC2的AMI,VMware的VMDK / VMX文件,VirtualBox的OVF导出等。
Packer的适用场景
持续交付
Packer是一个轻量级的命令行工具,使其成为pipeline环节中的一个完美工具,当我们使用chef或puppet在不用的平台进行软件的安装部署时,Packer可以为我们生成一个全新的镜像。在pipeline环节中如果最新的镜像经过测试和验证可以满足业务系统的需求,为后续业务系统的上线提供了一个稳定和可靠的基础架构环境。
开发和生产环境平级
Packer 让开发,测试和生产环境尽量保持一致,可以在同一时间在不同的平台部署相同的镜像,如果你使用AWS和VMware平台,Packer可以让你在同一时间在两个平台部署相同的镜像模板,结合上面的案例可以让你的基础架构更灵活,实现从开发到生产的基础架构保持一致。
Demo演示
Packer非常适合Demo应用的交付,随着应用的不断升级,用户通过自动化的安装部署软件十分轻松的在同一时间将应用Demo部署到不同的平台。
如果没有Packer我们如何做
制作镜像
Packer支持的平台
Alicloud ECS
Amazon EC2
Azure
CloudStack
DigitalOcean
Docker
File
Google Cloud
Hetzner Cloud
Hyper-V
LXC
LXD
NAVER Cloud
Null
1&1
OpenStack
Oracle
Parallels
ProfitBricks
QEMU
Scaleway
Triton
VirtualBox
VMware
Custom
使用案例
下面通过在阿里云上创建一个包含Redis数据库的镜像的简单实例来学习如何使用Packer。
创建quick-start.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_test2",
"source_image":"centos_7_04_64_20G_alibase_201701015.vhd",
"ssh_username":"root",
"instance_type":"ecs.n1.tiny",
"io_optimized":"true",
"image_force_delete":"true"
}],
"provisioners": [{
"type": "shell",
"inline": [
"sleep 30",
"yum install redis.x86_64 -y"
]
}]
}
创建镜像
packer build quick-start.json
Packer支持的Provisioners
Ansible Local
Ansible Remote
Breakpoint
Chef Client
Chef Solo
Converge
File
PowerShell
Puppet Masterless
Puppet Server
Salt Masterless
Shell
Shell (Local)
Windows Shell
Windows Restart
Custom
Packer的价值
也许你会说我在不同的平台安装好云主机再部署好应用不就行了,何必要如此麻烦?如果你需要在多个平台更新镜像如何操作呢,是否需要一步一步的登录不同平台,生成云主机,更新应用,再生成镜像,最后通过镜像部署新的云主机呢?Packer要做的事情就是将不同平台的镜像转换为代码化管理,这样使镜像的修改和调整变的更为灵活。
最新活动更多
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
-
精彩回顾立即查看>> 2024先进激光技术博览展
-
精彩回顾立即查看>> 全数会2024中国深圳智能制造与机器人展览会
-
精彩回顾立即查看>> 2024(第五届)全球数字经济产业大会暨展览会
-
精彩回顾立即查看>> 维科杯·OFweek2024中国工业自动化及数字化行业年度评选
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论