使用代码管理基础架构(一)镜像利器
admin
2023-04-09 10:04:02
0次


首先我们基础架构的组成主要是计算,存储和网络,在我们以往的模式中主要使用的是虚拟化技术,无论哪种虚拟化技术在实际生产环境中主要都是通过模板来提高交付效率,模板主要由操作系统和应用组成。

什么是packer

Packer是一个开源工具,从单一源配置为多个平台创建相同的机器映像。 Packer是轻量级的,可在每个主要操作系统上运行,并且可以并行创建多个平台的机器映像。 Packer不会取代像Chef或Puppet这样的配置管理。 事实上,在创建镜像时,Packer可以使用Chef或Puppet等工具在镜像上安装软件。

镜像是单个静态单元,包含预先配置的操作系统和已安装的软件,用于快速创建新的运行机器。 可以针对不同的平台创建不同格式的镜像。包括EC2的AMI,VMware的VMDK / VMX文件,VirtualBox的OVF导出等。

Packer的适用场景

l 持续交付

Packer是一个轻量级的命令行工具,使其成为pipeline环节中的一个完美工具,当我们使用chef或puppet在不用的平台进行软件的安装部署时,Packer可以为我们生成一个全新的镜像。在pipeline环节中如果最新的镜像经过测试和验证可以满足业务系统的需求,为后续业务系统的上线提供了一个稳定和可靠的基础架构环境。

l 开发和生产环境平级

Packer 让开发,测试和生产环境尽量保持一致,可以在同一时间在不同的平台部署相同的镜像,如果你使用AWS和VMware平台,Packer可以让你在同一时间在两个平台部署相同的镜像模板,结合上面的案例可以让你的基础架构更灵活,实现从开发到生产的基础架构保持一致。

l Demo演示

Packer非常适合Demo应用的交付,随着应用的不断升级,用户通过自动化的安装部署软件十分轻松的在同一时间将应用Demo部署到不同的平台。

如果没有Packer我们如何做:

使用代码管理基础架构(一)镜像利器


Packer如何做:

软件安装

https://www.packer.io/downloads.html

制作镜像

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要做的事情就是将不同平台的镜像转换为代码化管理,这样使镜像的修改和调整变的更为灵活。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...