Руководство по 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/scenario_guides/guide_vultr.html