Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс

Начинаем с 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.

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

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

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

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