溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用代碼管理基礎架構(一)鏡像利器

發(fā)布時間:2020-06-16 03:17:30 來源:網(wǎng)絡 閱讀:284 作者:24K純爺們兒 欄目:云計算


首先我們基礎架構的組成主要是計算,存儲和網(wǎng)絡,在我們以往的模式中主要使用的是虛擬化技術,無論哪種虛擬化技術在實際生產(chǎn)環(huán)境中主要都是通過模板來提高交付效率,模板主要由操作系統(tǒng)和應用組成。

什么是packer

Packer是一個開源工具,從單一源配置為多個平臺創(chuàng)建相同的機器映像。 Packer是輕量級的,可在每個主要操作系統(tǒng)上運行,并且可以并行創(chuàng)建多個平臺的機器映像。 Packer不會取代像Chef或Puppet這樣的配置管理。 事實上,在創(chuàng)建鏡像時,Packer可以使用Chef或Puppet等工具在鏡像上安裝軟件。

鏡像是單個靜態(tài)單元,包含預先配置的操作系統(tǒng)和已安裝的軟件,用于快速創(chuàng)建新的運行機器。 可以針對不同的平臺創(chuàng)建不同格式的鏡像。包括EC2的AMI,VMware的VMDK / VMX文件,VirtualBox的OVF導出等。

Packer的適用場景

l 持續(xù)交付

Packer是一個輕量級的命令行工具,使其成為pipeline環(huán)節(jié)中的一個完美工具,當我們使用chef或puppet在不用的平臺進行軟件的安裝部署時,Packer可以為我們生成一個全新的鏡像。在pipeline環(huán)節(jié)中如果最新的鏡像經(jīng)過測試和驗證可以滿足業(yè)務系統(tǒng)的需求,為后續(xù)業(yè)務系統(tǒng)的上線提供了一個穩(wěn)定和可靠的基礎架構環(huán)境。

l 開發(fā)和生產(chǎn)環(huán)境平級

Packer 讓開發(fā),測試和生產(chǎn)環(huán)境盡量保持一致,可以在同一時間在不同的平臺部署相同的鏡像,如果你使用AWS和VMware平臺,Packer可以讓你在同一時間在兩個平臺部署相同的鏡像模板,結合上面的案例可以讓你的基礎架構更靈活,實現(xiàn)從開發(fā)到生產(chǎn)的基礎架構保持一致。

l Demo演示

Packer非常適合Demo應用的交付,隨著應用的不斷升級,用戶通過自動化的安裝部署軟件十分輕松的在同一時間將應用Demo部署到不同的平臺。

如果沒有Packer我們?nèi)绾巫觯?/b>

使用代碼管理基礎架構(一)鏡像利器


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

使用案例

下面通過在阿里云上創(chuàng)建一個包含Redis數(shù)據(jù)庫的鏡像的簡單實例來學習如何使用Packer。

創(chuàng)建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"

]

}]

}

創(chuàng)建鏡像

??? 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要做的事情就是將不同平臺的鏡像轉(zhuǎn)換為代碼化管理,這樣使鏡像的修改和調(diào)整變的更為靈活。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI