资讯专栏INFORMATION COLUMN

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

URLOS / 1357人阅读

摘要:第二十期启迪云高级交付经理董乐首先我们基础架构的组成主要是计算存储和网络。不会取代像或这样的配置管理。事实上,在创建镜像时,可以使用或等工具在镜像上安装软件。

第二十期 启迪云高级交付经理  董乐

首先我们基础架构的组成主要是计算、存储和网络。在我们以往的模式中主要使用的是虚拟化技术。

无论哪种虚拟化技术在实际生产环境中主要都是通过模板来提高交付效率,模板主要由操作系统和应用组成。

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/6522.html

相关文章

  • 运用代码管理基础架构-可以自定义的CMP(二)

    摘要:第二十一期启迪云资深交付经理董乐前文回顾运用代码管理基础架构之镜像利器一需求分析随着公有云平台功能的日趋完善,混合云的架构逐步会成为企业是首要选择。 第二十一期 启迪云资深交付经理  董乐前文回顾:运用代码管理基础架构之-镜像利器(一)需求分析随着公有云平台功能的日趋完善,混合云的架构逐步会成为企业是首要选择。面对混合云的环境我们如何管理我们的基础架构?我们以创建一个web平台为例:传统方式...

    chnmagnus 评论0 收藏0
  • 用友云微服务架构下配置文件管理利器:配置中心

    摘要:而且,用友云配置中心以服务的方式提供统一的管理界面,结合用友云的认证中心可以提供可靠的安全保障。 微服务架构是这几年IT领域的一个高频词汇,越来越多的项目和应用正在以微服务的思想进行重构。相比于单体应用和SOA架构,微服务优势也逐渐凸显,被广大架构师和技术人员引入和推崇。当然,单体应用、SOA、微服务等各有优势和不足。单体架构在早期的企业内部信息化或者搭建中小型项目时很常见,简单说就是...

    jayce 评论0 收藏0
  • 如何理解LXC与Docker间的主要区别

    摘要:它目前由一个两人的团队领导来自的和。因为目前的架构,应用程序和服务是为正常的多程序操作系统环境设计的,所以需要去寻找一种以的方式来工作或使用工具来支持。是一个告诉如何从镜像用特定的应用程序来创建容器的脚本。公司受到风投支持,积极投入市场。 这篇文章从两个部分来探讨LXC,LXC和Docker的容器托管,以及轻便的容器技术将取代虚拟技术的可能性。 LXC有可能会改变我们如何运行和缩放应用...

    lovXin 评论0 收藏0
  • 谈谈Pod在微服务中的运用

    摘要:本文整理自时速云线上微信群分享第十期本文主要包括的基本概念使用场景,以及如何在时速云平台上进行的编排部署,希望对大家在进行微服务架构实践时有所帮助。问关于提供访问容器数据的能力,中包含一个业务和一个服务,时速云的控制台可以进入到容器内部。 本文整理自【时速云线上微信群分享】第十期 本文主要包括Pod的基本概念、使用场景,以及如何在时速云平台上进行Pod的编排部署,希望对大家在进行微服务...

    MASAILA 评论0 收藏0

发表评论

0条评论

URLOS

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<