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

相关内容

热门资讯

【今日要闻】“黑桃A辅助器?”... 网上科普关于“黑桃A有没有挂”话题很是火热,小编也是针对黑桃A作*弊开挂的方法以及开挂对应的知识点,...
AI偷偷‘抹掉’你的存在?用它... 你是否曾担忧,自己辛辛苦苦创作的内容,在AI搜索的新浪潮中反而变得“隐形”? 优采云AI内容工厂 当...
今日重大消息“鱼扑克怎么开挂?... 网上科普关于“鱼扑克有没有挂”话题很是火热,小编也是针对鱼扑克作*弊开挂的方法以及开挂对应的知识点,...
【第一财经】“亲友游戏怎么装挂... 您好:亲友游戏这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游戏...
玩家最新攻略“四方棋牌开挂器?... 家人们!今天小编来为大家解答四方棋牌透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很...
今日重大发现“胡乐邯郸麻将究竟... 网上科普关于“胡乐邯郸麻将有没有挂”话题很是火热,小编也是针对胡乐邯郸麻将作*弊开挂的方法以及开挂对...
今日重磅消息“电娱互动到底有挂... 有 亲,根据资深记者爆料电娱互动是可以开挂的,确实有挂(咨询软件无需打开...
终于懂了“白金岛麻将圈是不是有... 您好:白金岛麻将圈这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款...
今日重大发现“阿道夫十三水有挂... 您好:阿道夫十三水这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款...
【第一财经】“手机麻将到底有挂... 家人们!今天小编来为大家解答手机麻将透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很...