Spec-Zone.ru › Ansible 2.8

Руководство по 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_facts localhost
localhost | SUCCESS => {
  "ansible_facts": {
      "vultr_account_facts": {
          "balance": -8.9,
          "last_payment_amount": -10.0,
          "last_payment_date": "2018-07-21 11:34:46",
          "pending_charges": 6.0
      }
  },
  "changed": false,
  "vultr_account_facts": {
      "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, выполнение модуля для управления инфраструктурой на их платформе будет происходить на локальном компьютере. Это означает:

---
- 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_facts:

$ ansible-test integration cloud/vultr/vultr_account_facts -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.8/scenario_guides/guide_vultr.html

Spec-Zone.ru

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