Рубрики
devops

Конспект: Ansible

Начало

Ссылки:

Вводное:

Установка:






ansible подключение к клиентам

Пример генерации ключей

Подключение:

Дополнительная настройка ansible.cfg

Проверка ping:






ansible invertory и файл host.txt

Файл пример:

ДОП






ansible запуск ad-hoc команд, -m , ping , setup , shell , copy , file , get_url , yum , apt , service , uri , ansible-invertory , ansible-doc

Для работы -b и ошибка «msg»: «Missing sudo password»






ansible формат yaml , файлов yml , примеры

0. myfile.yml

1. myfile.yml

2. myfile.yml

3. myfile.yml

4. myfile.yml

5. Популярный вид записи myfile.yml






ansible перенос переменных , group_vars

Дано host.txt:

Выносим переменные из файла host.txt






ansible playbook

вводное

playbook0.yml ping

playbook1.yml install httpd CentOS

playbook2.yml install apache2 Debian

playbook3.yml install apache2 Debian and copy index.html






ansible переменные , Debug , Set_fact , Register

host.txt

playbook_debug.yml






ansible блоки , условия , apache , copy , install , when , block

playbook.yml






ansible , циклы , loop , with_items , until , with_fileglob , copy , folder , копирование

playbook-loop.yml примеры циклов loop, with_items

playbook.yml install-and-copy-folder

playbook.yml install-and-copy-folder по маске






ansible , шаблоны , template , jinja , generate

index.2j

playbook.yml






ansible role

вводное

Наш playbook.yml который мы будем распихивать в роль deploy_apache_web_site

Планируем распил….. playbook.yml …

С файлами получится вот так:

Редактируем deploy_apache_web_site\defaults\main.yml

Редактируем deploy_apache_web_site\hendlers\main.yml

Редактируем deploy_apache_web_site\tasks\main.yml

Создаем файл playbook.yml для установки ролей

Создаем файл playbook.yml для установки ролей с условием если ос linux








ansible внешние переменные extra-vars

В playbook.yml добавили переменную

Использование переменной






ansible import , include , file , folder , generate

include_playbook.yml его будем уменьшать и использовать include / import

create_folder.yml

create_files.yml

include_playbook.yml






ansible delegate_to , выполнить где нужно , run_once , shell , copy

playbook.yml delegate_to

playbook.yml delegate_to на ansible master 127.0.0.1

playbook.yml delegate_to , run_once выполнить один раз , reboot и ждем






ansible перехват и контроль ошибок , игнор , failed_when , result.rc , any_errors_fatal

playbook.yml пытаемся установить не существующий пакет treeee и выводим echo

playbook.yml ignore_errors игнорим ошибки и выполняем следующие таски

playbook.yml дебаг ignore_errors

playbook.yml failed_when

playbook.yml failed_when result.rc

playbook.yml выполнится только там где есть file1.txt

playbook.yml any_errors_fatal






ansible , ansible-vault , хранение секретов , шифрованный файл , шифрованные строки

вводное

playbook_vault.yml — будем шифровать этот файл

Шифрование строк в ansible

Шифрование строки в plabook.yml