Требуемые условия завершения
Задача:
3) Создание и настройка скрипта на машине ControlVM:
- a) Создание скрипта автоматизации:
- 1. На машине ControlVM создайте скрипт cloudinit.sh.
- 2. В качестве рабочей директории используйте путь /home/altlinux/bin.
- 3. Скрипт должен использовать файл конфигурации /home/altlinux/bin/cloud.conf для настройки подключения к облачному провайдеру.
- 4. При проверке задания, эксперты могут изменить настройки только в файле cloud.conf. Другие файлы редактироваться не будут.
- В файле cloud.conf допускается оставление комментариев, поясняющих назначение параметров.
- b) Требования к скрипту:
- 1. Скрипт должен быть разработан таким образом, чтобы его можно было выполнять из любой директории без необходимости указания полного пути к исполняемому файлу.
- 2. Для выполнения задания используйте инструменты для автоматизации развёртывания инфраструктуры.
- 3. Скрипт должен включать механизмы проверки доступности созданных ресурсов и их правильного функционирования, включая доступность Web-серверов через балансировщик нагрузки.
Вариант реализации:
ControlVM
Все файлы создаются в контексте каталога /home/altlinux/bin, если не сказано иное
- Удаляем все ранее созданные ресурсы средствами Terraform для дальнейшего развёртывания средствами одного файла cloudinit.sh:
terraform destroy
-
- Подтверждаем удаление ресурсов:
-
- Результат:
- Должны удалиться все созданные ранее ресурсы средствами Terraform и остаться одна ControlVM, а также ресурсы необходимые для её работы;
- Результат:
- Создаём файл cloudinit.sh:
- В котором необходимо описать всю последовательность действий по запуску всех необходимых компонентов для развёртывания всех необходимой инфраструктуры (Terraform) с последующей её настройкой (Ansible);
cloudinit.sh
-
- Помещаем в него следующее содержимое:
- Перечисляя ранее запускаемые в ручном режиме команды для проверки создаваемых ресурсов;
- Добавляем проверки, т.к. по требованиям задания скрипт должен включать механизмы проверки доступности созданных ресурсов
- Помещаем в него следующее содержимое:
#!/bin/bash
cd /home/altlinux/bin
source cloud.conf
terraform init
terraform apply -auto-approve
terraform output > /home/altlinux/white.ip
ansible-playbook -i ansible/inventory ansible/wireguard_playbook.yml
ansible-playbook -i ansible/inventory ansible/ssh_playbook.yml
echo "Проверяем доступность созданных инстансов, для каждого инстанса статус должен быть ACTIVE:"
echo ""
openstack --insecure server list
echo "Проверяем доступность созданного балансировщика нагрузки:"
echo ""
openstack --insecure loadbalancer list
echo "Проверяем доступность Web-серверов через балансировщик нагрузки:"
echo ""
openstack --insecure loadbalancer member list HTTP
openstack --insecure loadbalancer member list HTTPS
- Задаём права на исполнение для данного файла:
chmod +x cloudinit.sh
- Проверяем значение переменной окружения PATH:
echo $PATH
-
- Если есть пусть /home/altlinux/bin, тогда данный скрипт cloudinit.sh будет выполняться из любой директории
- Выполняем запуск скрипта:
./cloudinit.sh
-
- Результат:
- Скрипт отрабатывает без ошибок;
- Средствами Terraform в рамках решения Кибер Инфраструктура развёртываются необходимые ресурсы, в соответствие с топологией и требованиями задания;
- Информация о публичных IP-адресах сохраняется в файл в соответствие с требованиями задания;
- Средствами Ansible происходит конфигурация развёрнутых ресурсов в соответствие с требованиями задания;
- Выводится проверка созданных ресурсов;
- Результат:
Последнее изменение: четверг, 16 января 2025, 08:10