Ansible Dynamic Inventory#

Для управления созданной в К2 Облаке инфраструктурой можно использовать динамический Ansible Inventory, агрегирующий доступные виртуальные машины по различным параметрам.

Установка и настройка#

Клонируйте репозиторий и установите зависимости:

git clone https://github.com/C2Devel/ansible
cd ansible
python3.6 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Для работы с Ansible Dynamic Inventory необходимо получить настройки для доступа по API. Сделать это можно в консоли управления облаком. Зайдите в настройки профиля и нажмите Получить настройки доступа к API.

Так как Ansible Dynamic Inventory использует конфигурацию AWS, то следует настроить AWS CLI по следующей инструкции.

Сконфигурировать файл contrib/inventory/ec2.ini, указав информацию из настроек API:

aws_access_key_id = <YOUR_ACCESS_KEY>
aws_secret_access_key = <YOUR_SECRET_KEY>

Пример использования#

Для списка всех возможных агрегаций хостов следует использовать:

ansible-inventory --list -i contrib/inventory/ec2.py

При помощи полученной информации необходимо дополнить свои плейбуки, указав в hosts нужное описание группы хостов:

Хосты в конкретной зоне доступности:

- hosts: ru-msk-comp1p
  connection: local
  gather_facts: false
  tasks:
    - name: Example
      command: date

Хосты с определённым именем:

- hosts: tag_Name_web_server  # Где имя — web_server
  connection: local
  gather_facts: false
  tasks:
    - name: Example
      command: date