云原生学习笔记2:Iac以及Packer

1 简介

  • 基于相同的配置,为多个云平台生成不同的服务器镜像
  • 可以创建匹配不同云平台的服务器镜像,例如aws的ami,VMware的VMDK / VMX文
  • 性能强劲,可以为多个云平台并发创建服务器镜像
  • 可以很方便集成chef/puppet等配置服务

2 为什么使用packer

  • 各平台的镜像创建较为繁琐
  • packer使用较为简单,可以创建多种云平台的镜像

优点:

  • 超级快的部署和配置虚拟机:几秒的时间完成计算机申请、部署和配置工作
  • 跨云平台服务商支持:支持aws/openstack/vmware等云平台服务商,非常快速满足开发/测试/生产的需求
  • 稳定性提升:创建和配置所有的软件,如果有问题,可以提前发现
  • 可测试性更高:能快速启动服务器用于各种测试,提升可测试性

3 使用场景

  • 服务器镜像持续交付工具
  • 基于相同模板可以创建满足开发/测试/生产等不同运行环境的镜像,例如开发环境跑openstack、生产环境跑aws,基于相同的packer模板可以一键创建满足不同环境需求的服务器镜像
  • 适合快速创建演示产品,基于生产的模板,快速在一个地方进行搭建,并进行功能演示

4 使用

创建aws ec2 ami

  • 创建模板:模板为json格式
  • 模板包含:variables(外部变量)、builder(构建方法)等
  • build:通过packer build template构建模板,生成ami
  • 管理镜像:通过以上,会在aws账号生成对应的ami镜像,可以后续自行管理,例如删除等
  • provisioner:用于镜像构建后执行一些操作,操作类型可以是shell,也可以是将文件创建到镜像中
  • 构建:构建完成后,将会生成一个ami,并挂在对应的账户下

5 Provision

  • provision实现了基于原始的镜像进行重新配置的能力
  • 例如支持在原有镜像中引入一个新的服务

6 并发构建

  • 支持在一个packer模板中并发构建面向不同云服务商的镜像
  • 例如同时构建aws的ami镜像和vmware的虚拟机镜像
  • variables:可以把多个平台用到的变量一并生命
  • build:多种build时,支持多个build构建不同平台的镜像
  • provision:多个平台的镜像build完成后,可以同时执行同一个provision
  • 构建:构建完成后,会创建两个虚拟机镜像, 一个挂载aws的账户下,另一个挂在vmware的平台上
posted @ 2020-09-01 19:49  SailorXiao  阅读(312)  评论(0编辑  收藏  举报