Содержание
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
Первая команда интерактивна, во второй файл с паролем должен содержать ровно одну строчку.