Руководство по 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