Ansible для начинающих в стиле best-practice
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
C++ Developer. Professional JavaScript Developer. Professional Android Developer. Professional Microservice Architecture React.js Developer JavaScript Developer. Basic PostgreSQL Программист С C++ Developer. Basic Team Lead PHP Developer. Professional Подготовка к сертификации Oracle Java Programmer (OCAJP) Алгоритмы и структуры данных Разработчик IoT C# Developer. Basic Unreal Engine Technical Game Design C# ASP.NET Core разработчик Python Developer. Basic Базы данных Node.js Developer iOS Developer. Professional Cloud Solution Architecture Kotlin Backend Developer Agile Project Manager Scala-разработчик Symfony Framework iOS Developer. Basic Супер-интенсив Azure Специализация Python Developer
Инфраструктура
Экспресс-курс по управлению миграциями (DBVC) Экспресс-курс «IaC Ansible» Microservice Architecture Разработчик программных роботов (RPA) на базе UiPath и PIX Внедрение и работа в DevSecOps NoSQL Специализация Administrator Linux
-24%
Разработчик IoT Мониторинг и логирование: Zabbix, Prometheus, ELK MongoDB
-37%
DevOps практики и инструменты MS SQL Server Developer SRE практики и инструменты Administrator Linux. Advanced Infrastructure as a code Супер-интенсив "Tarantool" Специализация Network engineer
Корпоративные курсы
Экспресс-курс по управлению миграциями (DBVC) Экспресс-курс «IaC Ansible» Разработчик программных роботов (RPA) на базе UiPath и PIX Внедрение и работа в DevSecOps NoSQL Spark Developer Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» Game QA Engineer DevOps практики и инструменты Enterprise Architect Node.js Developer Cloud Solution Architecture Agile Project Manager Супер-практикум по работе с протоколом BGP Infrastructure as a code Промышленный ML на больших данных Супер-интенсив Azure Руководитель поддержки пользователей в IT
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Начинаем с Ansible в стиле best-practice

Linux_Deep_29.06_SITE.png

На просторах сети есть много гайдов на русском вроде «Учим Ansible с нуля». Но ни в одном из них я не видел, чтобы человека сразу же погружали в best-practice. Хотя бы в плане построение древа директорий для ролей. Считаю, что сделать это надо хотя бы потому, что переезд на best-practice может оказаться болезненным для новичков. Сейчас я попытаюсь исправить этот недочёт. Используемая в примерах ОС – Centos 7.5.

Разберёмся немного, что за best-practice такой

Идём по ссылке и читаем:

These may not use all of the features in the latest release, but are still an excellent reference!

Мораль такова: всё аккуратно разложено по директориям для вашего же удобства в дальнейшем использовании. Сам Ansible понимает, для чего нужна каждая директория. Например, из rolename/vars он по умолчанию берёт переменные для роли, а из rolename/tasks он берёт основные задачи. Что такое роли можно прочитать, например, ТУТ >>

Установим Ansbile и GIT

Всё есть в стандартных репозиториях:

yum install -y ansible git

Проверим установку:

ansible --version && git --version

Далее скопируем раскладку директорий из репозитория, чтобы не создавать руками:

git clone https://github.com/mattjbarlow/ansible-directory.git. 

Хотя первый раз, конечно, советую пройти это всё вручную – для закрепления материала. Обязательно зайдите в директорию и изучите её содержимое.

Далее пропишем хост в тестовый инвентаризационный файл:

cd ansible-directory
echo "192.168.255.1 ansible_ssh_user=root" >> staging

Протестируем соединение с тестовым хостом:

ansible -i staging -m ping all

У нас почти всё настроено

Осталось только попробовать на реальном примере:

git clone https://github.com/geerlingguy/ansible-role-nginx.git roles/nginx

Перед запуском зайдите в site.yml и поменяйте role: common на role: nginx. Прелесть ролей как раз в том, что вам нужно просто указать имя директории и Ansible всё поймёт сам.

Ну и запускаем нашу роль:

ansible-playbook -i staging site.yml

В итоге на тестовом сервере успешно установлен и настроен nginx.

Есть вопрос? Напишите в комментариях!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
1 комментарий
2

Устанавливать роли через git clone это прекрасно) Ну и пример ansible-directory не особо хороший.

Для комментирования необходимо авторизоваться