Шта је Пацкер?
Како то ради
Коришћење Пацкер-а
Дефинисање региона, плана и ОС
Шта је Пацкер?
Пацкер је алатка за обраду слика сервера коју је развио ХасхиЦорп. Сервер имагинг; или алтернативно, непроменљива инфраструктура; је популарна алтернатива алатима за конфигурацију времена извршавања, као што су Ансибле или Пуппет. Заснован је на идеји да када се сервер једном постави, никада га не мењате; уместо тога, постављате нови сервер са вашим изменама, а затим рушите стари. Ово олакшава одржавање сервера и омогућава вам ефикасније скалирање на великом броју машина.
Иако Пацкер не подржава Вултр из кутије, постоји додатак који додаје ту подршку. Упутства за инсталирање Пацкер-а са Вултр подршком се могу наћи на РЕАДМЕ додатку. Остатак овог чланка претпоставља да имате инсталиран Пацкер, као и додатак Вултр.
Како то ради
Сврха Пацкер-а је да произведе слике сервера, или артефакте који се могу користити за креирање новог сервера тачно онако како је био у време снимања. За Вултр, ти артефакти се зову Снапсхотс. Додатак функционише тако што поставља нови ВПС, покреће ваше дефинисане провајдере на њему, креира његов Снимак, а затим руши ВПС. Када желите да креирате нови сервер од своје слике, једноставно позовите Вултров АПИ да бисте применили нови ВПС са жељеним Снапсхот-ом као оперативним системом.
Коришћење Пацкер-а
Пацкер узима ЈСОН датотеку која дефинише градњу коју треба да покрене као улаз. Ево примера датотеке која дефинише Вултр буилд:
{
"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"
}
]
}
Ова датотека има два кључа највишег нивоа variablesи builders. variablesТастер се користи за дефинисање прилагођене променљиве, и у том случају се користи да се угради VULTR_API_KEYпроменљиву окружења на начин који се касније могу користити. buildersКључ садржи списак гради да ради, у овом случају само наша Вултр израде. Хајде да мало разбијемо ту конструкцију:
type: Ово дефинише градитељ који ће стварно користити, а за Вултр градње ово би увек требало да буде vultr.
api_key: Да бисте покренули изградњу, потребан вам је АПИ кључ, који је овде дефинисан. Овај пример га дефинише као вредност vultr_api_keyкорисничке променљиве, која је даље постављена на вредност VULTR_API_KEYпроменљиве окружења.
snapshot_description: Опис резултујућег снимка.
region_id: Регион у који ћете поставити ВПС. Ово не утиче на коначни снимак, већ само на сервер са којег је снимак направљен.
plan_id: План за ВПС. Будућа употреба овог снимка мора да дефинише план који је бар оволики.
os_id: Оперативни систем на коме се заснива снимак.
ssh_username: Корисничко име које ће се користити када се ССХ убацује на сервер за обезбеђивање. За Линук сервере то ће обично бити root.
Да бисте је користили, сачувајте ову датотеку са именом као што је server.json, а затим покрените команду packer build server.json. Видећете неки излаз који указује на статус изградње, што ће потрајати неколико минута.
Када покренете ову изградњу, нови сервер са именом Snapshotting: My Awesome Appће бити креиран, снимљен и затим уништен. Без дефинисаних одредби, то је све што се дешава. За више информација о дефинисању добављача, погледајте Пацкерову документацију .
Када се градња заврши, Пацкер ће исписати ИД резултујућег снимка.
Дефинисање региона, плана и ОС
Ове три вредности су потребне за сваку Вултр верзију, али се могу дефинисати на један од неколико начина. За сваку од њих треба да наведете тачно једну од његових варијација како бисте избегли двосмисленост:
Регион
Информације о региону се могу тражити преко АПИ-ја: хттпс : //ввв.вултр.цом/апи/#регионс_регион_лист
region_id: ИД региона, нпр 2
region_code: Шифра региона, нпр ORD
План
Информације о плану се могу затражити преко АПИ-ја: хттпс : //ввв.вултр.цом/апи/#планс_план_лист
plan_id: ИД плана, нпр 201
ОС
Информације о оперативном систему се могу тражити преко АПИ-ја: хттпс : //ввв.вултр.цом/апи/#ос_ос_лист
os_id: ИД оперативног система, нпр 167