基于Packer与Ansible实现云平台黄金镜像统一构建发布_第1页
基于Packer与Ansible实现云平台黄金镜像统一构建发布_第2页
基于Packer与Ansible实现云平台黄金镜像统一构建发布_第3页
基于Packer与Ansible实现云平台黄金镜像统一构建发布_第4页
基于Packer与Ansible实现云平台黄金镜像统一构建发布_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于Packer与Ansible实现云平台黄金镜像统一构建发布 【摘要】手动做镜像一直是非常繁琐的事,因此还在采用这种效率极低的手动方式的已经很少了,往往都会借助一些镜像构建工具,本文接下来会分别介绍OpenStack私有云和AWS公有云场景下的镜像构建工具,最后将介绍多云或者混合云场景下基于Packer+Ansible的镜像构建最佳实践。黄金镜像(Golden Image)是云平台虚拟机启动的镜像模板,通常由管理员基于ISO镜像或者各操作系统发行版发行的Base镜像之上添加安全合规基线配置以及预装必要的agent,如cloud-init、qemu-guest-agent、监控agent等。

2、手动做镜像一直是非常繁琐的事,首先需要准备一个KVM/QEMU虚拟机环境启动虚拟机,当然也可以直接在云平台基于一个Base镜像启动虚拟机。然后手动执行一系列脚本,安装各种必要工具及配置,接着把虚拟机关机,生成快照镜像,最后上传到云平台镜像仓库,预计至少需要半个小时以上完成整个黄金镜像的制作和发布。这种方式至少存在如下几个问题:很难维护,一旦黄金镜像需要修改某个配置,就需要重新走整个制作镜像流程,非常耗费时间。如果只是简单配置修改,倒也是可以通过把镜像文件通过loop设备挂载到本地,然后chroot文件系统去直接改。镜像是一个二进制制品文件,没法做版本管理,无法跟踪变化,无法代码化。基本无法串联

3、到任何pipeline中,比如镜像漏洞扫描等。因此还在采用如上这种效率极低的手动方式的已经很少了,往往都会借助一些镜像构建工具,本文接下来会分别介绍OpenStack私有云和AWS公有云场景下的镜像构建工具,最后将介绍多云或者混合云场景下基于Packer+Ansible的镜像构建最佳实践。备选方案:OpenStack diskimage-builderOpenStack维护的DIB(disk image builder)项目,目前是TripleO项目的子项目,主要用于构建OpenStack镜像。DIB的原理就是把一些操作封装成Shell脚本,比如创建用户(devuser)、安装cloud-in

4、it(cloud-init)、配置yum源(yum)、部署tgtadm(deploy-tgtadm)等,这些脚本称为Element,位于目录diskimage-builder/diskimage_builder/elements,你可以根据自己的需求自己定制elements,elements之间会有依赖,依赖通过element-deps文件指定,比如elements centos7的element-deps为:cache-urlredhat-commonrpm-distrosource-repositoriesyum以devuserElement为例,该Element为创建一个操作系统用户,脚

5、本如下:#!/bin/bash#.省略部分代码user_shell_args=if-n$DIB_DEV_USER_SHELL;thenuser_shell_args=-s$DIB_DEV_USER_SHELLfiuseradd-m$DIB_DEV_USER_USERNAME$user_shell_argsif-n$DIB_DEV_USER_PASSWORD;thenechoSettingpassword.echo$DIB_DEV_USER_USERNAME:$DIB_DEV_USER_PASSWORD|chpasswdfiif-n$DIB_DEV_USER_PWDLESS_SUDO;thenc

6、at/etc/sudoers.d/$DIB_DEV_USER_USERNAMEWaitcompletedafter5minutes53seconds=Buildsfinished.Theartifactsofsuccessfulbuildsare:-amazon-ebs.test_aws:AMIswerecreated:cn-northwest-1:ami-071e19313c601b374-openstack.test_openstack:Animagewascreated:583a0bac-b973-47aa-8424-8929dfa99288以上例子通过Packer+Ansible使用同

7、一个Provision配置并行构建了OpenStack私有云镜像和AWS公有云镜像,实现黄金镜像的构建自动化和代码化。结论本文首先介绍了私有云场景下OpenStack DIB工具以及公有云AWS EC2 Image Builder服务两个主流镜像构建方案,对比了其优缺点,然后介绍了适合多云或者混合云场景下的Packer镜像构建工具,最后引入Packer+Ansible镜像最佳构建实践。通过Packer可同时并行构建私有云和公有云镜像,并且由于Provision是一样的,最后构建的镜像也是完全一样的,通过Packer实现了混合云模式下镜像的统一构建和发布。同时通过Ansible自动化工具简化了代码的编写,Ansi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论