Задача:

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