6 / отчет 6
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра Программная инженерия
ОТЧЕТ
по лабораторной работе №6
по дисциплине «Основы DevOps»
Тема: «Основы Ansible»
Выполнил: студент группы БВТ2402
Кудряшов Вадим Георгиевич
Проверил: Тимчук А.В.
Москва, 2026
Цель работы
Познакомиться с инструментом Ansible;
Изучить формат описания конфигураций Ansible
Индивидуальное задание
Перед началом выполнения подготовили уже готовую виртуалку, которая будет типа хостом. Самое важное что нужно проверить, это статус ssh
sudo systemctl status ssh
Вот так быть не должно)
Чтобы запустить SSH службу нада:
sudo systemctl enable --now ssh
sudo systemctl start ssh
И сделаем еще 2 виртуалки
Так это должно выглядеть
Установим ssh сервак
Запустим демон и проверим что служба работает
Это нужно повторить на каждой виртуалке
Заходим на хост виртуалку, там в директории проекта (если нет – сделать) создаем файл hosts, без расширения, просто hosts
В файле hosts прописали три группы – staging_servers(первая и вторая виртуалка) prod_servers (третья виртуалка) и группа all_servers, просто группа которая объединяет две верхние.
айпишники берутся командой ip a, тот который нужен, обычно начинается с 192
Создадим конфигурационный файл
В нем прописали блок defaults, в котором отключили проверку SSH-ключей, чтобы Ansible не ругался на новые виртуалки
Создадим файл для переменных группы all_serves
прописали в нем логин/пароль от виртуалки
Установим пакет sshpass
Он нужен, потому что, Ansible по умолчанию ожидает, что мы настроили SSH-ключи для беспарольного входа. Но так как в лабе мы используем пароль, нам нужен sshpass, чтобы «подсовывать» его автоматически при подключении. Установим сам пакет Ansible (ну да я забыл это сделать иче)
Ansible - система упрчавления конфигурациями. Автоматизирует управление удаленными системами и контролирует их желаемое состояние
Пропишем ad-hoc команду чтобы пингануть виртуалки
ad-hoc – однострочная команда Ansible, предназначенная для выполнения разовых задач на удаленных узлах без необходимости создавать плейбук (файл сценария)
all – «выполнить на всех хостах»
-i hosts – флаг, который явно указывает путь к файлу с айпишниками
-m ping - -m(module) флаг, который задает команду, которая будет исполнятся на всех хостах
-k – ask-pass, флаг чтоб спросить пароль
Создадим директорию задачи для роли nginx
-p (parents) – флаг, позволяющий создавать вложенные директории
roles/ - директория, в которой Ansible будет искать роли по умолчанию
nginx/ – директория роли nginx
tasks/ - директория-список задач, которые роль предоставляет пьесе(playbook) для выполнения
Создадим в этой директории файл .yml
И опишем саму таску
name – понятно
apt – вызов модуля apt
notify – уведомление обработчику
Теперь создадим директорию для обработчика, который будет импортироваться в родительский плейбук для использования этой роли.
И опишем обработчик:
systemd – системный менеджер Linux, который управляет запуском, остановкой и состоянием всех сервисов
state: started – желаемое состояние: запущен
Теперь создадим сам плейбук nginx_install_and_run.yml
3: группа хостов: все (выполнить на всех машинах)
4-5: ключ слово для повышения привилегий
6-7: способ, которым будет выполняться повышение привилегий
8-9: пользователь, чьи права повышаем
10-11: роль которую нужно выполнить
Наконец запускаем плейбук
-i hosts – инвентарь
-kK – спрашивает пароль при запуске и пароль sudo (для apt)
все работает)
Исходный код программы
Если есть, оформляется согласно стилю кода языка программирования в шрифте consolas, 10 пунктов (Цветовое оформление может быть сохранено или убрано).
Заключение
В ходе выполнения лабораторной работы были успешно решены следующие задачи:
Перечисление выполненных задач и их результаты.
Контрольные вопросы
Ответы на контрольные вопросы лабораторной работы.
