Створення знімків за допомогою Packer

Що таке Пакер?

Packer — це інструмент створення зображень сервера, розроблений HashiCorp. Обробка зображень сервера; або, як альтернатива, незмінна інфраструктура; є популярною альтернативою інструментам конфігурації часу виконання, таким як Ansible або Puppet. Він заснований на ідеї, що після розгортання сервера ви ніколи не змінюєте його; замість цього ви розгортаєте новий сервер зі своїми змінами, а потім руйнуєте старий. Це спрощує обслуговування сервера та дозволяє ефективніше масштабуватися на великій кількості машин.

Хоча Packer не підтримує Vultr із коробки, існує плагін, який додає цю підтримку. Інструкції щодо встановлення Packer з підтримкою Vultr можна знайти в README плагіна. Решта цієї статті передбачає, що у вас встановлено Packer, а також плагін Vultr.

Як це працює

Метою Packer є створення зображень сервера або артефактів, які можна використовувати для створення нового сервера точно так, як він був під час створення зображення. Для Vultr ці артефакти називаються знімками. Плагін працює шляхом розгортання нового VPS, запуску на ньому визначених ініціаторів, створення його знімка, а потім руйнування VPS. Якщо ви хочете створити новий сервер зі свого образу, просто зателефонуйте API Vultr, щоб розгорнути новий VPS з потрібним знімком як його ОС.

Використання Packer

Пакер бере файл JSON, який визначає збірку, яку він має запускати як вхідні дані. Ось зразок файлу, що визначає збірку 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"
    }
  ]
}

Цей файл має два ключі верхнього рівня variablesта builders. variablesКлюч використовується для визначення користувача змінних, і в цьому випадку використовується для включення VULTR_API_KEYзмінної середовища таким чином , що може бути використаний пізніше. buildersКлюч містить список збірки для запуску, тільки в цьому випадку нашого Vultr збірка. Давайте трохи розіб'ємо цю конструкцію:

  • type: Це визначає конструктор, який буде фактично використовувати, а для збірок Vultr це завжди має бути vultr.
  • api_key: Щоб запустити збірку, вам потрібен ключ API, який визначено тут. Цей приклад визначає його як значення vultr_api_keyзмінної користувача, яке далі встановлюється на значення VULTR_API_KEYзмінної середовища.
  • snapshot_description: Опис отриманого знімка.
  • region_id: регіон для розгортання VPS. Це не впливає на остаточний знімок, а лише на сервер, на якому створено знімок.
  • plan_id: план використання для VPS. Майбутнє використання цього знімка має визначати план, який буде принаймні таким великим.
  • os_id: Операційна система для створення знімка.
  • ssh_username: Ім'я користувача, яке буде використовуватися під час SSH-сервера для ініціалізації. Для серверів Linux це зазвичай буде root.

Щоб використовувати його, збережіть цей файл під іменем, наприклад server.json, а потім запустіть команду packer build server.json. Ви побачите деякий результат, який вказує на статус збірки, що займе кілька хвилин.

Коли ви запускаєте цю збірку, новий сервер з ім’ям Snapshotting: My Awesome Appбуде створено, зроблено знімок, а потім знищено. Це все, що відбувається без визначення провайдерів. Для отримання додаткової інформації про визначення ініціаторів зверніться до документації Packer .

Після завершення збірки Packer виведе ідентифікатор отриманого знімка.

Визначення регіону, плану та ОС

Ці три значення необхідні для кожної збірки Vultr, але їх можна визначити кількома способами. Для кожного з них слід вказати точно одну з його варіацій, щоб уникнути двозначності:

Регіон

Інформацію про регіон можна отримати через API: https://www.vultr.com/api/#regions_region_list

  • region_id: ідентифікатор регіону, напр 2
  • region_code: код регіону, напр ORD

План

Інформацію про план можна отримати через API: https://www.vultr.com/api/#plans_plan_list

  • plan_id: ідентифікатор плану, напр 201

ОС

Інформацію про операційну систему можна отримати через API: https://www.vultr.com/api/#os_os_list

  • os_id: ідентифікатор ОС, напр 167

Як встановити Jenkins на CentOS 7

Як встановити Jenkins на CentOS 7

Jenkins — популярний інструмент CI (безперервна інтеграція) з відкритим кодом, який широко використовується для розробки, розгортання та автоматизації проектів. Ця стаття буде

Як встановити та налаштувати Concourse CI в Ubuntu 16.04

Як встановити та налаштувати Concourse CI в Ubuntu 16.04

Використання іншої системи? Вступ Постійна інтеграція – це практика розробки програмного забезпечення DevOps, яка дозволяє розробникам часто об’єднувати

Як встановити та налаштувати Ansible на Debian 9 для використання з Windows Server

Як встановити та налаштувати Ansible на Debian 9 для використання з Windows Server

Використання іншої системи? Ansible — інструмент з відкритим кодом для автоматизації завдань. Він керує конфігурацією ваших серверів Linux і Windows. Це працює

Як встановити та налаштувати GoCD на CentOS 7

Як встановити та налаштувати GoCD на CentOS 7

Використання іншої системи? GoCD — це система безперервної доставки та автоматизації з відкритим вихідним кодом. Він дозволяє моделювати складні робочі процеси, використовуючи його паралельний an

Використання SaltStack With Pillars в Ubuntu 17.04

Використання SaltStack With Pillars в Ubuntu 17.04

Хоча SaltStack є чудовим інструментом для одночасного виконання операцій на багатьох серверах, він також підтримує певні налаштування конфігурації для кожного хоста, що зберігаються в

Як встановити та налаштувати Ansible на CentOS 7 для використання з Windows Server

Як встановити та налаштувати Ansible на CentOS 7 для використання з Windows Server

Використання іншої системи? Ansible — інструмент з відкритим кодом для автоматизації завдань. Він керує конфігурацією ваших серверів Linux і Windows. Це працює

Як встановити Drone CI на Ubuntu 18.04

Як встановити Drone CI на Ubuntu 18.04

Вступ Drone — це автоматизована платформа безперервного тестування та доставки, яка працює на вашій власній інфраструктурі. Дрон підтримує будь-яку мову, сервіс о

Балансувальники навантаження Vultr

Балансувальники навантаження Vultr

Що таке Load Balancer Балансувальники навантаження розташовані перед вашою програмою і розподіляють вхідний трафік між кількома екземплярами вашої програми. Fo

Як встановити Foreman на CentOS 7

Як встановити Foreman на CentOS 7

Використання іншої системи? Foreman — це безкоштовний інструмент з відкритим вихідним кодом, який допоможе вам налаштувати та керувати фізичними та віртуальними серверами. Предварня

Як встановити SaltStack на CentOS 7

Як встановити SaltStack на CentOS 7

SaltStack, або Salt, — це популярне рішення для керування конфігурацією з відкритим вихідним кодом, яке можна використовувати для реалізації віддаленого виконання, керування конфігурацією, код

Як встановити Strider CD на Ubuntu 18.04

Як встановити Strider CD на Ubuntu 18.04

Вступ Strider CD — це платформа безперервного розгортання з відкритим вихідним кодом. Програма написана на Node.js і використовує MongoDB як бекенд сховища. Шрок

Використання диспетчера пакетів Chocolatey у Windows

Використання диспетчера пакетів Chocolatey у Windows

Вступ Chocolatey забезпечує керування пакетами, що спрощує адміністрування програмного забезпечення та залежностей у Linux у Windows. Можна швидко і легко

Створення знімків за допомогою Packer

Створення знімків за допомогою Packer

Що таке Пакер? Packer — це інструмент створення зображень сервера, розроблений HashiCorp. Обробка зображень сервера; або, як альтернатива, незмінна інфраструктура; є популярною альтернативою

Як встановити та налаштувати Concourse CI на CentOS 7

Як встановити та налаштувати Concourse CI на CentOS 7

Використання іншої системи? Вступ Постійна інтеграція – це практика розробки програмного забезпечення DevOps, яка дозволяє розробникам часто об’єднувати

Використання Chef-solo для налаштування програми Django в Ubuntu

Використання Chef-solo для налаштування програми Django в Ubuntu

Є багато способів автоматизувати процес налаштування та налаштування коробки. З будь-якої причини, якщо вся наша система на даний момент складається з справедливих

Як встановити Foreman на Ubuntu 16.04 LTS

Як встановити Foreman на Ubuntu 16.04 LTS

Використання іншої системи? Foreman — це безкоштовний інструмент з відкритим вихідним кодом, який допоможе вам налаштувати та керувати фізичними та віртуальними серверами. Предварня

Початок роботи з SaltStack в Ubuntu 17.04

Початок роботи з SaltStack в Ubuntu 17.04

SaltStack — це програма керування конфігурацією на основі Python, яка оптимізована для автоматизації файлів конфігурації, розгортань та всього іншого.

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше