Руководство по 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, выполнение модуля для управления инфраструктурой на их платформе будет происходить на локальном компьютере. Это означает:
---
- 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/scenario_guides/guide_vultr.html