По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В предыдущей статье мы рассмотрели, как можно использовать файлы для того, чтобы не засорять код Terraform. В данной статье мы посмотрим, как можно использовать динамические файлы (шаблоны) для написания кода Терраформ. Что такое динамический файл? В данном контексте это файл, в который мы посылаем всякие переменные и файл генерируется в зависимости от наших переменных. Когда в коде мы используем конструкцию user_data = file (), по сути мы делаем копировать-вставить из файла, который мы указываем в качестве аргумента функции. Теперь мы будем использовать другую функцию ее синтаксис немного отличается: user_data = templetfile(). Данная функция принимает два параметра. Первый параметр имя файла. Далее ставится знак , и затем фигурные скобки {}, в которых мы указываем переменные, которые мы хотим отправить в файл шаблона. Рекомендую для читаемости кода и удобства работы файл, в который будут отправляться переменные переименовывать в имя_файла.tpl. Обще принятое расширение для файла-шаблона. В итоге мы получаем генерированный файл с отправленными в него параметрами. Выглядит это следующем образом. Допустим мы хотим отправить в файл несколько переменных например: f_name = “Olya” , l_name = “Vasilkova”, names = [“Masha”, ”Vasya”, ”Rik”, ”Petya”, “Oleg”] Как видите мы засылаем переменные в файл, мы можем одну переменную или кучу целую отправить, не обязательно что данные переменные будут использоваться. Переменные разные, одиночные мы взяли 2 переменные и одну переменную где много значений. Можно сказать, что массив данных. В предыдущей статье мы создавали html страничку, мы продолжим ее создавать, только с использованием переменных. Берем скрипт из предыдущего урока и начинаем править. Переименовываем файл - cp user_data.sh user_data.sh.tpl. Следующим шагом правка непосредственно самого скрипта с использованием html разметке. Отправляем переменные в файл. Вместо переменных вставятся значение переменных. Далее мы вставляем цикл, чтобы пройтись по значениям переменной names. Получаем в цикле, что x будет равна каждому значению в переменной names. Обратите внимание, что конструкция %{ for x in names ~} и % { endfor~} печататься не будут! Печататься будет то, что находится в цикле Hello to ${x} from ${f_name}. Т.е вот этим скриптом мы генерируем user_data в коде терраформ. Следовательно, наш файл index.html будет с кучей строчек. Теперь нам необходимо, это все запустить. Переходим в командной строке в директорию Lesson-4. И проводим первичную инициализацию terraform init. Результатом успешной инициализации будет следующий вывод команды на экран. Далее даем команду на проверку кода терраформ в том числе убедится, что не создастся ничего лишнего. terraform apply, подтверждаем выполнение команды словом yes. А далее мы можем видеть, как система начинает создание ресурсов. После исполнения мы можем в консоли AWS увидеть созданный ресурс. Обратите внимание, что при создании ресурса user_data шифруется. Это хорошо видно в момент вывода terraform apply. Когда инстанс в консоли AWS запустился, мы можем посмотреть, что у нас содержится в user_data. Для этого необходимо по instance щелкнуть правой кнопкой мыши и вызвать меню. В данном меню выбираем user_data. Появляется следующее окно. Как мы видим на картинке, часть нашего скрипта. Если прокрутить, то он будет там весь со всему принимаемыми значениями. Это функция будет достаточно полезна для контроля переменных, чтобы посмотреть какие данные попали в переменные. Следовательно, на выходе мы получаем в веб браузере следующего вида веб страничку. У нас получилось с помощью переменных и шаблона сгенерировать html файл, то есть наш файл динамичный. Далее уже дело техники подставить его в веб-сервер для отображения и запуска в инстансе AWS. Напоминаю, что IP адрес нашего сервера в AWS можно посмотреть в двух местах. А затем обратиться к веб странице по протоколу http с использованием данного IP адреса в любом браузере. Немного еще функционала - можно не поднимая инстанса посмотреть какие данные получим на выходе. Для этого используем функционал terraform console. Берем часть терраформ файла. Выравниваем в одну строку: templatefile("user_data.sh.tpl", { f_name = "Olya",l_name = "Vasilkova", names = ["Masha", "Vasya", "Rik", "Petya", "Oleg"] }) и вставляем. Как вы видите получаем те данные которые передаются на инстанс в AWS.
img
Domain Name System DNS - это сетевая система, содержащая информацию о каждом web-сайте в Интернете. Каждый сайт имеет свой уникальный IP-адрес, имеющий вид 111.222.111.222, а также доменное имя, например merionet.ru. Человеку гораздо проще запомнить доменное имя сайта, нежели набор цифр входящих в IP-адрес. Для этих целей и была разработана система DNS. Подобно записной книжке, в ней хранится таблица соответствия доменного имени сайта и его IP-адреса. В DNS используется иерархическая древовидная структура серверов и имен. Самый верхний уровень это “root”, представляющий из себя точку (.) и следующий за ним домен верхнего уровня (Top Level Domain). Эти домены бывают двух типов: Generic Top Level Domain (gTLD) Например: .com (коммерческие web-сайты), .net(web-сайты сетевых структур), .org (вэб- сайты организаций), .edu (web-сайты образовательных структур) Country Code Top Level Domain (ccTLD) Например: .ru (Россия), .us (США), .uk (Великобритания), .in (Индия) Данные, которые сообщают веб-серверу, как ответить на ваш запрос называются DNS записи или Zone Files. Каждая запись содержит информацию о конкретном объекте. DNS-сервер использует записи, чтобы отвечать на запросы хостов из определенной доменной зоны. Например, запись address mapping (A) отвечает за связку host name и IP-адреса, а запись reverse-lookup pointer (PTR), за связку IP-адреса и host name. Стоит отметить, что в терминологии DNS очень много различных записей, мы же приведем основные: A Record - Содержит информацию об определенном доменном имени и соответствующем IP-адресе. DNS-сервер обращается к данной записи, чтобы ответить на запрос, содержащий доменное имя. Ответом будет IP-адрес, указанный в записи. PTR Record - Связывает IP-адрес с определенным доменным именем. NS (Name Server) Record - Связывает доменное имя со списком DNS-серверов, отвечающих за данный домен. MX (Mail Exchange) Record - Связывает доменное имя со списком серверов почтового обмена для данного домена. Например, при отправке письма на адрес example@merionet.ru, данное письмо будет перенаправлено на сервер, указанный в MX записи. Типы запросов DNS В терминологии DNS существует три типа запросов: Recursive – Такие запросы можно представить так: “Какой IP-адрес у a.merionet.ru?” При получении recursive запроса, DNS-сервер выполняет следующие действия: Хост отправляет локальному DNS-серверу запрос “Какой IP-адрес у a.merionet.ru?” DNS-сервер проверяет наличие записи a.merionet.ru в локальных таблицах и не находит ее. DNS-сервер отправляет запрос IP-адреса a.merionet.ru к root-серверу Root-сервер отвечает, что надо обратиться к TLD серверу, отвечающий за домен .ru DNS-сервер, получив ответ от root-сервера, отправляет recursive запрос одному из ccTLD-серверов, отвечающих за домен .ru TLD-сервер отвечает, что нужно обратиться к серверу, отвечающему за домен merionet.ru DNS-сервер отправляет запрос IP-адреса a.merionet.ru к серверу, отвечающему за домен merionet.ru Сервер обращается к A Record и находит там соответствующий IP-адрес для a.merionet.ru Таким образом, хост получает запрашиваемую страницу по адресу a.merionet.ru Второй тип DNS-запросов – это Iterative запросы. Данные запросы передаются между DNS-серверами, когда один из них не имеет соответствующих записей. Таким образом, инициатор запроса будет контактировать с сервером, который имеет нужную запись Последний тип запросов – Inverse. Собственно из названия данного запроса понятно, что они работают по инверсному принципу, то есть при известном IP-адресе запрашивается информация о доменном имени.
img
Рассказываем про ещё один полезный инструмент на роутерах MikroTik - отправку e-mail сообщений по протоколу SMTP. Данный инструмент может быть использован для отправки на почту периодических бэкапов или же задействован для написания каких-нибудь скриптов. В интерфейсе WinBox, утилита Email расположена в разделе Tools → Email: Из командной строки - /tool e-mail. Первым делом нужно настроить сервер исходящей почты по протоколу SMTP. Доступны следующие параметры настройки: address - IPv4/v6 адрес, SMTP сервера; from - имя или название почтового ящика, который будет показан получателю; password - пароль, который используется для аутентификации на SMTP сервере. В этом случае аутентификации не будет шифроваться. Для включения шифрования можно использовать функцию start-tls; port - порт SMTP сервера, по умолчанию 25; start-tls - может принимать значения no, yes и tls-only - разрешает только TLS шифрования без поддержки SSL; user - имя пользователя, которое будет использоваться для аутентификации на SMTP сервере. Когда сервер будет настроен, можно начинать отправлять письма. Все параметры при отправке писем идут после команды /tool e-mail send: body - тело письма cc - данный параметр позволяет поставить в копию дополнительных получателей; file - позволяет добавлять один или несколько файлов во вложении к письму; from - название или почтовый адрес, который будет показан как отправитель. Если ничего не указано, то будет взят from, который указывался при настройке сервера SMTP; password - пароль, который используется для аутентификации на SMTP сервере. Если ничего не указано, то будет взят password, который указывался при настройке сервера SMTP; port - порт SMTP сервера. Если ничего не указано, то будет взят port, который указывался при настройке сервера; server - адрес SMTP сервера. Если не указано, то используется параметр сервера, указанный при настройке; start-tls - использовать ли TLS шифрование; subject - тема письма; to - адрес получателя, которому предназначено письмо; user - имя пользователя, для аутентификации на сервере. Если не указано, то будет использоваться user из настроек сервера. Теперь давайте применим механизм отправки писем на практике и создадим скрипт, который будет каждый день высылать файл с резервной копией конфигурации нам на почту. Вот как настройка будет выглядеть в командной строке: tool e-mail> set server=192.168.1.34 set port=25 from=”mnmikrotik@mndomain.ru” Теперь добавим новый скрипт, который будет делать бэкап конфигурации роутера: /export file=export /tool e-mail send to="mnadmin@mndomain.ru"subject="$[/system identity get name] export" body="$[/system clock get date] configuration file" file=export.rsc Добавим скрипт на выгрузку конфигурации в планировщик: /system scheduler add on-event="export-send" start-time=00:00:00 interval=24 Готово, теперь каждый день нам на почту mnadmin@mndomain.ru будет приходить свежая выгрузка резервной копии конфигурации нашего роутера. Для того, чтобы настроить отправку писем на почтовый ящик, требующий TLS шифрования (как например Google mail), нужно настроить следующие параметры отправителя: /tool e-mail set address= 192.168.1.34 set port=587 set from=mnaddress@gmail.com set user= mikrotik set password= supersecurepass При отправке письма на такой ящик, необходимо указать параметр start-tls. send to=mnadmin@mndomain.ru subject="HW!" body="Hello World!" start-tls=yes Если Вы предпочитаете настраивать роутер с помощью интерфейса WinBox, то откройте Tools → Email и настройте параметры сервера: Далее заходим в System → Scripts и добавляем новый скрипт на выгрузку конфигурации: Добавляем скрипт в планировщик, чтобы он срабатывал каждый день:
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59