img

Использование внешних статических файлов при создании AWS сервера

В предыдущей статье мы рассмотрели развертывание сервера с помощью Terraform в Amazon облаке. Мы использовали для развертывания файл с кодом, где описали полностью наш сервер и добавили скрипт на скриптовом языке bash, чтобы создалась HTML страничка с IP адресом сервера.

Сам скрипт:

user_data              = <<EOF
#!/bin/bash
apt -y update
apt -y install apache2
myip=`curl http://169.254.169.254/latest/meta-data/local-ipv4`
echo "<h2>WebServer with IP: $myip</h2><br> Build by Terraform!" > /var/www/html                                                                                                                                                             /index.html
sudo service httpd start
chkconfig httpd on
EOF  

Помещение подобного скрипта в код для поднятия инстанса, не очень хорошая практика, обычно для этого используются внешние статические файлы. На это есть несколько причин, одна из них разделение ролей в команде, например. Один человек пишет Terraform код, а другой скрипты для серверов на bash если это Linux сервер или на PowerShell если сервер разворачивается под управлением операционной системой Windows. Еще одной причиной является информационная безопасность точки зрения, которой не корректно вставлять скрипт внутри терраформ кода.

Для начала создадим новую директорию Lesson-3 с помощью команды mkdir Lesson-3.

Теперь, создадим новый файл WebServer.tr, командой nano webserver.tr и вставим рабочий код:

nano webserver.tr

Далее мы можем вырезать те данные которые у нас пойдут в скрипт и сохраняем файл. Создадим еще один файл назовем его user_data.sh. Создается файл достаточно просто - nano user_data.sh. В данный файл мы вставляем вырезанный кусок скрипта. Очень важно, обратите внимание! Файл должен начинаться с #!/bin/bash данная строка указывает, что для исполнения данного файла должен использоваться скриптовый язык bash. Сохраняем. На самом деле расширение файла, создаваемого не важно, т.к мы будем использовать функцию в Terraform которая берет контент из файла и делает вставку в код, автоматически подхватывая скрипт. Далее переходим к редактированию основного файла из которого мы вырезали скрипт. Открываем его любым текстовым редактором опять - nano webserver.tr. И нам теперь необходимо вставить функцию, которая возьмет данные из файла. В общем виде данная функция будет выглядеть следующим образом:

user_data = file(“./dir/myfile.txt”) 

В нашем случае строчка модифицируется, т.к файл лежит в той же директории, что и Terraform файл user_data = file(“user_data.sh”).

Теперь, чтобы проверить, как это работает мы должны сделать первоначальную инициацию Terraform, командой terraform init. Terraform, как обычно скачает все, что ему необходимо для работы. Далее проверяем, что у нас получилось и посмотрим, какие изменения Terraform произведет. В результате мы можем видеть, что, как и в прошлый раз будет создано 2 элемента. Сервер и Группа безопасности. Далее для запуска сервера мы можем использовать стандартную команду terraform apply и на вопрос системы отвечаем утвердительно. Можно сразу увидеть, что процесс создания сервера и группы безопасности начался.

Создание сервера и группы безопасности

Как видите процесс занял совсем небольшое время.

Создание завершено

В данном случае не более одной минуты. Если мы зайдем в консоль мы можем убедится, что инстанс поднялся.

Instance State

Находим присвоенный амазоном белый ip адрес, который нам позволит из интернета проверить работоспособность нашего сервера и использование статического файла в качестве нашего скрипта, т.е убедится, что у нас все заработало.

Public IP

И последний шаг, проверяем что наш веб сервер доступен из глобальной сети. Обращаемся к нему, через браузер по протоколу http. В данном случае - http://18.157.187.102/.

Web Server

Вот мы можем увидеть вот такую картину.

Не забудьте выключить и удалить все не нужные вам ресурсы в Амазон, во избежание лишних затрат.

Статические внешние файлы играют большую роль в написание Terraform кода, потому что они используется практически во всех проектах и постоянно нужна в работе.

Ссылка
скопирована
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Введение В серверной стойке (серверном шкафу) хранится и размещается информационно-техническое оборудование, например, выделенны
img
  Всплески трафика могут стать как проблемой для вашей инфраструктуры хостинга, так и потрясающей возможностью для развития.  На
img
Подробное руководство, предназначенное для понимания и оптимизации различных типов соединений в SQL, которое повысит вашу произв
img
  Введение Цель резервного копирования и репликации – предотвратить критическую потерю данных в результате непредвиденных событи
img
  Вы можете более эффективно запускать и компилировать свои программы с помощью этого удобного средства автоматизации. Есл
img
Дотфайлы (dotfiles) – это немаловажные файлы, которые могут сыграть ключевую роль в вашей карьере разработчика программного обес
Комментарии
ЛЕТНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59