Spec-Zone.ru › Ansible 2.10

Руководство по Vultr

Ansible предлагает набор модулей для взаимодействия с облачной платформой Vultr.

Этот набор модулей формирует структуру, позволяющую легко управлять и оркестрировать свою инфраструктуру на платформе Vultr.

Требования

На самом деле технических требований нет; требуется только уже созданный аккаунт Vultr.

Настройка

Модули Vultr предлагают довольно гибкий способ настройки.

Настройка считывается в таком порядке:

  • Переменные среды (например, VULTR_API_KEY, VULTR_API_TIMEOUT)
  • Файл, указанный переменной среды VULTR_API_CONFIG
  • Файл vultr.ini в текущей рабочей директории
  • $HOME/.vultr.ini

Файлы ini структурированы следующим образом:

[default]
key = MY_API_KEY
timeout = 60

[personal_account]
key = MY_PERSONAL_ACCOUNT_API_KEY
timeout = 30

Если переменная среды VULTR_API_ACCOUNT или параметр модуля api_account не указаны, модули будут искать раздел с именем «default».

Авторизация

Перед использованием модулей Ansible для взаимодействия с Vultr нужен API-ключ. Если у вас его ещё нет, войдите в Vultr, перейдите в раздел «Аккаунт», затем «API», активируйте API, и API-ключ должен появиться.

Убедитесь, что вы разрешили использование API-ключа с правильных IP-адресов.

Обратитесь к разделу «Настройка», чтобы узнать, где разместить эту информацию.

Для проверки корректной работы выполните следующую команду:

#> VULTR_API_KEY=XXX ansible -m vultr_account_info localhost
localhost | SUCCESS => {
  "changed": false,
  "vultr_account_info": {
      "balance": -8.9,
      "last_payment_amount": -10.0,
      "last_payment_date": "2018-07-21 11:34:46",
      "pending_charges": 6.0
  },
  "vultr_api": {
      "api_account": "default",
      "api_endpoint": "https://api.vultr.com",
      "api_retries": 5,
      "api_timeout": 60
  }
}

Если отображается аналогичный вывод, значит всё настроено правильно. В противном случае, убедитесь, что указан правильный VULTR_API_KEY и что настройки доступа в Vultr > Аккаунт > API верны.

Использование

Поскольку Vultr предлагает общедоступный API, выполнение модуля для управления инфраструктурой на их платформе будет происходить на localhost. Это означает:

---
- hosts: localhost
  tasks:
    - name: Create a 10G volume
      vultr_block_storage:
        name: my_disk
        size: 10
        region: New Jersey

После этого пределы вашей креативности — лишь ваши собственные идеи. Убедитесь, что вы прочитали документацию по доступным модулям.

Динамический инвентаризация

Ansible предоставляет плагин динамической инвентаризации для Vultr. Процесс настройки точно такой же, как и для модулей.

Чтобы использовать его, сначала нужно включить его, указав следующее в файле ansible.cfg:

[inventory]
enable_plugins=vultr

И предоставить конфигурационный файл для использования с плагином. Минимальный конфигурационный файл выглядит так:

---
plugin: vultr

Чтобы отобразить доступные хосты, можно просто выполнить:

#> ansible-inventory -i vultr.yml --list

Например, это позволяет вам выполнять действия с узлами, сгруппированными по расположению или имени ОС:

---
- hosts: Amsterdam
  tasks:
    - name: Rebooting the machine
      shell: reboot
      become: True

Интеграционные тесты

Ansible включает интеграционные тесты для всех модулей Vultr.

Эти тесты предназначены для запуска против общедоступного API Vultr, поэтому для доступа к API требуется действительный ключ.

Подготовьте тестовую среду:

$ cd ansible # location the ansible source is
$ source ./hacking/env-setup

Установите API-ключ Vultr:

$ cd test/integration
$ cp cloud-config-vultr.ini.template cloud-config-vultr.ini
$ vi cloud-config-vultr.ini

Запустите все тесты Vultr:

$ ansible-test integration cloud/vultr/ -v --diff --allow-unsupported

Чтобы запустить определенный тест, например, vultr_account_info:

$ ansible-test integration cloud/vultr/vultr_account_info -v --diff --allow-unsupported

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/scenario_guides/guide_vultr.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API