首先我們基礎(chǔ)架構(gòu)的組成主要是計(jì)算,存儲(chǔ)和網(wǎng)絡(luò),在我們以往的模式中主要使用的是虛擬化技術(shù),無論哪種虛擬化技術(shù)在實(shí)際生產(chǎn)環(huán)境中主要都是通過模板來提高交付效率,模板主要由操作系統(tǒng)和應(yīng)用組成。
創(chuàng)新互聯(lián)公司是一家專業(yè)的網(wǎng)站制作公司,提供的服務(wù)包括:高端網(wǎng)站設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),我們是一家專業(yè)的建站公司,做網(wǎng)站,我們是認(rèn)真的。我們是成都網(wǎng)站制作,成都網(wǎng)站建設(shè)的先行者,一切以客戶的利益為設(shè)計(jì)方向,能夠?yàn)椴煌袠I(yè)的客戶提供全面、長期、深入的網(wǎng)絡(luò)解決方案。 創(chuàng)新互聯(lián)公司根據(jù)客戶的具體需求,提供從策劃、創(chuàng)意、制作、執(zhí)行等服務(wù)。什么是packer
Packer是一個(gè)開源工具,從單一源配置為多個(gè)平臺(tái)創(chuàng)建相同的機(jī)器映像。 Packer是輕量級的,可在每個(gè)主要操作系統(tǒng)上運(yùn)行,并且可以并行創(chuàng)建多個(gè)平臺(tái)的機(jī)器映像。 Packer不會(huì)取代像Chef或Puppet這樣的配置管理。 事實(shí)上,在創(chuàng)建鏡像時(shí),Packer可以使用Chef或Puppet等工具在鏡像上安裝軟件。
鏡像是單個(gè)靜態(tài)單元,包含預(yù)先配置的操作系統(tǒng)和已安裝的軟件,用于快速創(chuàng)建新的運(yùn)行機(jī)器。 可以針對不同的平臺(tái)創(chuàng)建不同格式的鏡像。包括EC2的AMI,VMware的VMDK / VMX文件,VirtualBox的OVF導(dǎo)出等。
Packer的適用場景
l 持續(xù)交付
Packer是一個(gè)輕量級的命令行工具,使其成為pipeline環(huán)節(jié)中的一個(gè)完美工具,當(dāng)我們使用chef或puppet在不用的平臺(tái)進(jìn)行軟件的安裝部署時(shí),Packer可以為我們生成一個(gè)全新的鏡像。在pipeline環(huán)節(jié)中如果最新的鏡像經(jīng)過測試和驗(yàn)證可以滿足業(yè)務(wù)系統(tǒng)的需求,為后續(xù)業(yè)務(wù)系統(tǒng)的上線提供了一個(gè)穩(wěn)定和可靠的基礎(chǔ)架構(gòu)環(huán)境。
l 開發(fā)和生產(chǎn)環(huán)境平級
Packer 讓開發(fā),測試和生產(chǎn)環(huán)境盡量保持一致,可以在同一時(shí)間在不同的平臺(tái)部署相同的鏡像,如果你使用AWS和VMware平臺(tái),Packer可以讓你在同一時(shí)間在兩個(gè)平臺(tái)部署相同的鏡像模板,結(jié)合上面的案例可以讓你的基礎(chǔ)架構(gòu)更靈活,實(shí)現(xiàn)從開發(fā)到生產(chǎn)的基礎(chǔ)架構(gòu)保持一致。
l Demo演示
Packer非常適合Demo應(yīng)用的交付,隨著應(yīng)用的不斷升級,用戶通過自動(dòng)化的安裝部署軟件十分輕松的在同一時(shí)間將應(yīng)用Demo部署到不同的平臺(tái)。
如果沒有Packer我們?nèi)绾巫觯?/b>
Packer如何做:軟件安裝
https://www.packer.io/downloads.html
制作鏡像
Packer支持的平臺(tái)
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)建一個(gè)包含Redis數(shù)據(jù)庫的鏡像的簡單實(shí)例來學(xué)習(xí)如何使用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的價(jià)值
也許你會(huì)說我在不同的平臺(tái)安裝好云主機(jī)再部署好應(yīng)用不就行了,何必要如此麻煩?如果你需要在多個(gè)平臺(tái)更新鏡像如何操作呢,是否需要一步一步的登錄不同平臺(tái),生成云主機(jī),更新應(yīng)用,再生成鏡像,最后通過鏡像部署新的云主機(jī)呢?Packer要做的事情就是將不同平臺(tái)的鏡像轉(zhuǎn)換為代碼化管理,這樣使鏡像的修改和調(diào)整變的更為靈活。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。