Ansible

Предисловие

Ansible - это система управления конфигурациями, написанная на python. От клиентов требуется только установленный python и работающий ssh-сервер. Требуемая конфигурация системы описывается с помощью yml-файлов.

Структура проекта

Важно изначально правильно структурировать данные

ansible/
  group_vars/
    freebsd/
    docker/
    linux/
  host_vars/
    alpine/
    template0/

Структура файла

Модуль command

Выполняет команду со списком аргументов. Не подхватывает переменные окружения. Если задан параметр creates, то команда выполняется, если указанный в ней файл не существует. Параметр removes, наоборот, инициирует выполнение команды, если файл существует.

- name: Execute command if mydir/file_name doesn't exists
    command: command arg1 arg2
  args:
    chdir: mydir/
    creates: file_name

Модуль shell

Выполняет команду со списком аргументов. В отличие от command, выполнение производится через shell, то есть команда может использовать переменные среды. Параметр executable меняет shell-оболочку на заданную.

- name: Csh executes command if mydir/file_name doesn't exists
    shell: script.sh arg1 arg2
  args:
    chdir: mydir/
    creates: file_name
    warn: False
    executable: /bin/csh

Модуль stat

Модуль debug

Vault

Создание, редактирование и просмотр шифрованного файла

Для создания используется команда

# ansible-vault create имя_файла

, для редактирования -

# ansible-vault edit имя_файла

, для просмотра -

# ansible-vault view имя_файла

Для шифрования готового файла используем команду

# ansible-vault encrypt имя_файла

Использование в сценариях

Если плэйбук содержит шифрованные данные, то используем одну из команд:

# ansible-playbook book.yml --ask-vault-pass

или

# ansible-playbook book.yml --vault-password-file password.txt

Первая команда интерактивна, во второй файл с паролем должен содержать ровно одну строчку.

freebsd/ansible.txt · Последние изменения: 01.03.2019 15:17:41 — Ладилова Анна
Наверх
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0