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