Найти в Дзене

35 Cоздание и настройка скрипта на машине ControlVM

terraform destroy 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 echo $PATH ./cloudinit.sh

Все файлы создаются в контексте каталога /home/altlinux/bin, если не сказано иное

  • Удаляем все ранее созданные ресурсы средствами Terraform для дальнейшего развёртывания средствами одного файла cloudinit.sh:

terraform destroy

  • Создаём файл 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

./cloudinit.sh

  • Результат:Скрипт отрабатывает без ошибок;
    Средствами 
    Terraform в рамках решения Кибер Инфраструктура развёртываются необходимые ресурсы, в соответствие с топологией и требованиями задания;
    Информация о публичных IP-адресах сохраняется в файл в соответствие с требованиями задания;
    Средствами 
    Ansible происходит конфигурация развёрнутых ресурсов в соответствие с требованиями задания;
    Выводится проверка созданных ресурсов;