Çfarë është Packer?
Si punon
Duke përdorur Packer
Përcaktimi i rajonit, planit dhe sistemit operativ
Çfarë është Packer?
Packer është një mjet i imazhit të serverit i zhvilluar nga HashiCorp. Imazhi i serverit; ose ndryshe, infrastrukturë e pandryshueshme; është një alternativë e njohur për mjetet e konfigurimit të kohës së funksionimit, të tilla si Ansible ose Puppet. Ai bazohet në idenë që sapo të vendoset një server, ju kurrë nuk e ndryshoni atë; në vend të kësaj, ju vendosni një server të ri me ndryshimet tuaja dhe më pas prishni të vjetrin. Kjo e bën mirëmbajtjen e serverit më të lehtë dhe ju lejon të shkallëzoni në mënyrë më efikase në një numër të madh makinash.
Ndërsa Packer nuk e mbështet Vultr jashtë kutisë, ekziston një shtojcë që e shton atë mbështetje. Udhëzimet për instalimin e Packer me mbështetjen e Vultr mund të gjenden në README të shtojcës. Pjesa tjetër e këtij artikulli supozon se ju keni të instaluar Packer, si dhe shtojcën Vultr.
Si punon
Qëllimi i Packer është të prodhojë imazhe të serverit, ose objekte që mund të përdoren për të krijuar një server të ri pikërisht ashtu siç ishte në kohën e imazhit. Për Vultr, ato artefakte quhen Snapshots. Shtojca funksionon duke vendosur një VPS të ri, duke ekzekutuar ofruesit tuaj të përcaktuar në të, duke krijuar një fotografi të tij dhe më pas duke shkatërruar VPS-në. Kur dëshironi të krijoni një server të ri nga imazhi juaj, thjesht telefononi API-në e Vultr për të vendosur një VPS të ri me Snapshot-in e dëshiruar si OS.
Duke përdorur Packer
Packer merr një skedar JSON që përcakton ndërtimin që duhet të ekzekutohet si hyrje. Këtu është një skedar mostër që përcakton një ndërtim Vultr:
{
"variables": {
"vultr_api_key": "{{env `VULTR_API_KEY`}}"
},
"builders": [
{
"type": "vultr",
"api_key": "{{user `vultr_api_key`}}",
"snapshot_description": "My Awesome App",
"region_id": "2",
"plan_id": "201",
"os_id": "167",
"ssh_username": "root"
}
]
}
Ky skedar ka dy çelësa të nivelit të lartë variablesdhe builders. variablesKyç është përdorur për të përcaktuar variabla porosi, dhe në këtë rast është përdorur për të inkorporojë VULTR_API_KEYvariabël mjedisi në një mënyrë që mund të përdoren më vonë. buildersÇelësi përmban një listë e ndërton për të kandiduar, në këtë rast vetëm Vultr jonë ndërtuar. Le ta zbërthejmë pak atë ndërtim:
type: Kjo përcakton ndërtuesin që do të përdoret në të vërtetë, dhe për ndërtimet Vultr kjo duhet të jetë gjithmonë vultr.
api_key: Për të ekzekutuar ndërtimin, ju nevojitet një çelës API, i cili përcaktohet këtu. Ky shembull e përcakton atë si vlerën e vultr_api_keyndryshores së përdoruesit, e cila më tej vendoset në vlerën e VULTR_API_KEYndryshores së mjedisit.
snapshot_description: Përshkrimi i fotografisë që rezulton.
region_id: Rajoni ku do të vendoset një VPS. Kjo nuk ndikon në pamjen përfundimtare, por vetëm serverin nga i cili është krijuar fotografia.
plan_id: Plani për t'u përdorur për VPS. Përdorimet e ardhshme të kësaj fotografie duhet të përcaktojnë një plan që është të paktën kaq i madh.
os_id: Sistemi operativ mbi të cilin bazohet fotografia.
ssh_username: Emri i përdoruesit që do të përdoret kur SSH të futet në server për furnizim. Për serverët Linux, kjo zakonisht do të jetë root.
Për ta përdorur atë, ruajeni këtë skedar me një emër si server.json, dhe më pas ekzekutoni komandën packer build server.json. Do të shihni disa rezultate që tregojnë statusin e ndërtimit, i cili do të zgjasë disa minuta.
Kur ekzekutoni këtë ndërtim, Snapshotting: My Awesome Appdo të krijohet një server i ri me emrin, do të merret fotografia dhe më pas do të shkatërrohet. Pa asnjë ofrues të përcaktuar, kjo është gjithçka që ndodh. Për më shumë informacion mbi përcaktimin e ofruesve, referojuni dokumentacionit të Packer .
Pasi të përfundojë ndërtimi, Packer do të nxjerrë ID-në e fotografisë që rezulton.
Përcaktimi i rajonit, planit dhe sistemit operativ
Këto tre vlera kërkohen për çdo ndërtim të Vultr, por mund të përcaktohen në një nga disa mënyra. Për secilën, duhet të specifikoni saktësisht një nga variacionet e tij për të shmangur paqartësitë:
Rajon
Informacioni për rajonin mund të kërkohet përmes API-së: https://www.vultr.com/api/#regions_region_list
region_id: ID e rajonit, p.sh 2
region_code: Kodi i rajonit, p.sh ORD
Planifikoni
Informacioni i planit mund të kërkohet përmes API-së: https://www.vultr.com/api/#plans_plan_list
plan_id: ID-ja e planit, p.sh 201
OS
Informacioni i sistemit operativ mund të kërkohet përmes API-së: https://www.vultr.com/api/#os_os_list