По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Для того, чтобы нормально пользоваться инструментом Terraform, нам понадобится текстовый редактор с плагином, понимающим язык разметки Terraform (HCL). Это необходимо для того, чтобы было удобно писать код для поднятия инфраструктуры. На самом деле, код можно писать в каком угодно текстовом редакторе, но наиболее удачно подходит текстовый редактор Atom. Для Windows установка очень простая. Идем на сайт www.atom.io, сайт автоматически определяет версию операционной системы и нажимаем на кнопку скачать. Дальнейшая инсталляция под операционную систему Windows очень простая - запуск файла и нажатие несколько раз кнопки Далее. В случае если мы хотим работать из-под операционной системы Linux, заходя на сайт мы видим, что сайт предлагает скачать нам установочные пакеты в вариации deb и rmp. Но возможно пойти нам и другим путем. Заходим на сайте в документацию, находим Atom Flight Manual. Далее выбираем с левой стороны Installing Atom, а вверху тип операционной системы. Далее мы видим описание инсталляций для разных ОС семейства Linux. Для Ubuntu и для CentOS. При инсталляции на Ubuntu: wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add - Скачиваем ключ и помещаем в хранилище. sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list' Обновляем список депозитарий командой apt update, а также обновляем сам репозиторий. Ну собственно и последующая инсталляция непосредственно самого текстового редактора Atom. sudo apt-get install Atom Инсталляция на CentOS в принципе аналогичная. Скачиваем и добавляем ключ. sudo rpm --import https://packagecloud.io/AtomEditor/atom/gpgkey sudo sh -c 'echo -e "[Atom] name=Atom Editor baseurl=https://packagecloud.io/AtomEditor/atom/el/7/$basearch enabled=1 gpgcheck=0 repo_gpgcheck=1 gpgkey=https://packagecloud.io/AtomEditor/atom/gpgkey" > /etc/yum.repos.d/atom.repo' Теперь мы можем воспользоваться пакетным менеджером yum или dnf sudo dnf install Atom sudo dnf install atom-beta Или если установлен альтернативный пакетный менеджер yum или операционная система CentOS 7, можно скачать пакет в rpm формате https://atom.io/download/rpm и установить sudo yum install -y atom.x86_64.rmp sudo dnf install -y atom.x86_64.rpm После данных манипуляций у нас установится текстовый редактор Atom. Конечно, установка имеет смысл на машину с графическим интерфейсом пользователя. Его можно найти по зеленой иконке, как на скриншоте. Далее, самая интересная, часть данной статьи. Если мы просто вставим кусочек кода от TerraForm, то мы увидим, что он ничем не отличается от обычного текста. Все преимущества данного текстового редактора раскрываются в использовании плагинов для Terraform. Для установки плагина, который различает написанный код Terraform, нам необходимо зайти в Edit, в данном открывшемся меню найти Preferences. В следующем открывшемся окне выбираем Install. В правой части после данной операции появляется строка поиска для инсталляции дополнительных пакетов (Plugins). С помощью данного поиска находим пакет по запросу Terraform. Пакетов будет найдено достаточно много. Можно посмотреть описание и версию пакетов и сколько раз был скачен данный пакет. Я рекомендую выбрать пакет language-terraform. Для большинства данного пакета будет совершенно достаточно. Данный пакет дает не только красивую подсветку кода, но и много других функций. Еще для удобства работы можно установить terraform-fmt. Данный пакет не столь популярен, но за то он позволяет удобно форматировать код Terraform при написании. А именно, код будет выравниваться при нажатии сочетания клавиш Ctrl+S для сохранения изменений в файле. Для того, чтобы плагины начали работать, необходимо перезапустить текстовый редактор. И второй важный момент переименовать файл рабочий в файл с разрешением *.tf.
img
Сегодня хотим поговорить о подключении телефонных линий в офис и сравнить, что лучше - SIP или подключение по PRI? Корпоративные системы телефонии давно отошли от использования обычных аналоговых линий в пользу АТС (автоматическая телефонная станция) в паре с подключением к ISDN по стандарту PRI. Но, не так давно, появился современный, более дешевый и гибкий вариант подключения офисных АТС, который называется «SIP – транкинг». В этой статье мы сравним подключение по PRI с подключение по SIP, отметим преимущества и недостатки. PRI (Primary Rate Interface) — стандартный интерфейс сети ISDN. В рамках данного интерфейса функционируют такие стандарты как E1 и T1 Цифровая телефония Важно понимать, что мы ведем разговор исключительно о цифровой передаче сигнала, не аналоговой. Оба стандарта PRI и SIP используют цифровую модель сигнала, с единственной разницей в том, что стандарт ISDN PRI это формат с коммутацией каналов, а SIP это коммутация пакетов. Функциональность С точки зрения функциональности, при условии правильной настройки, обе системы демонстрируют высокие показатели. Почти все IP – АТС на рынке поддерживают стандарты PRI и SIP. Основная идея интерфейса PRI (потоки E1 или T1) в том, что в рамках одной цифровой линии может передаваться 32 или 24 канала, по которым передаются как голосовые сообщения, так и информация о сигнализации и синхронизации. Интерфейс T1 состоит из 23 голосовых каналов и 1 канала для синхронизации. В свою очередь Е1 поддерживает 30 голосовых каналов и 2 канала выделяется для сигнализации. Масштабируемость PRI Если вам требуется расширить число каналов, то есть сделать их больше 30, то необходимо добавить еще одну PRI линию. Ситуация, в которой у компании на АТС используется от 1 до 4 PRI линий (потоков Е1) является достаточно распространенной. SIP в корпоративной сети Применение протокола SIP в корпоративных сетях расширяет инструментарий администратора. SIP - транк позволяет объединить два удаленных офиса так, будто их соединяет физическая линия. Одним из важнейших преимуществ SIP – транков является возможность сосуществования трафика сети передачи данных и трафика от телефонии (VoIP) в одной сетевой среде передачи – такая сеть называется конвергентной. Почему SIP? «SIP транкиг», как видно из названия, оперирует на базе протокола SIP (Session Initiation Protocol). По правилам протокола, телефонная сигнализация и голосовые сообщения формируются в пакеты и передаются в одной сети передачи данных. Использование протокола SIP предлагает более широкий по сравнению с ISDN PRI спектр возможностей, а так же, позволяет расширить параметры отказоустойчивости к падению каналов передачи. Важно отметить, что выбор провайдера SIP телефонии является ответственной задачей, так как уровень обслуживания варьируется от ISP к ISP. ISP - Internet Service Provider Внешние вызовы PRI При высоких сетевых нагрузках имеет смысл подключать две отдельные линии для телефонии и передачи данных. Это уменьшает риск и позволяет использовать дешевые высокоскоростные каналы (без гарантии определенного уровня задержек и прочих параметров канала) вместе с использованием канала с максимально высоким качеством обслуживания. При этом все равно остается возможность совместить корпоративную сеть и дать АТС право маршрутизировать звонки, в том числе и внешние вызовы через PRI транк. Но к чему использовать E1 PRI для подключения IP- телефона вместо использования на 100% возможностей VoIP? Самым простым объяснением является то, что в мире далеко не все используют VoIP или даже оператора интернет услуг (провайдера) ISP. На текущий момент, единственной, по-настоящему универсальной системой является ТфОП, через которую можно дозвониться до любого телефона в мире. Корпоративная VoIP АТС может дать хорошую экономию на внутренних звонках внутри вашей сети, более того, можно купить SIP - транк для подключения к телефонному оператору связи через интернет. Но, что происходит при наборе внешнего номера через PRI? Правильно, вызов пойдет через ISDN PRI линии, которые подключены к публичной телефонной сети. Внешние вызовы SIP Вместо использования PRI интерфейса, можно использовать SIP – транк. В зависимости от кодеков, полосы пропускания и схемы подключения, в рамках подключения по SIP предоставляется возможность использовать намного больше каналов, чем в E1 (PRI), то есть больше тридцати. Вы можете подключить десятки телефонных аппаратов к своей АТС в зависимости от полосы пропускания канала к провайдеру. Качество обслуживания Отметим, что в телефонной сети общего пользования, под телефонный вызов резервируется вся полоса пропускания канала передачи. В отличие от PRI, VoIP пакеты могут быть обслуживаться наравне с трафиком от других приложений. В данном случае, голосовые пакеты буду чувствительны к таким параметрам как задержка, потеря пакетов или джиттер. При ненадлежащем качестве обслуживания трафика VoIP, эффект может быть аналогичным ситуации, в которой наш мобильный имеет низкий уровень сигнала сотовой сети. Защищенность Сама по себе концепция ISDN PRI предоставляет изолированный канал передачи данных от точки до точки. Конечно, SIP можно передавать по защищенным VPN сетям, но в базовой архитектуре, пакеты SIP передаются по открытой сети Интернет. Итоги Безусловно, выбор всегда формируется под воздействием множества факторов, таких как требования к безопасности, количеству каналов, масштабируемости, бюджету и качеству обслуживания. Протокол SIP – это современный и очень гибкий стандарт, обладающий большим количеством функций, в то время как ISDN PRI доказал свою надежность на протяжении 20 лет использования. Выбор за вами!
img
В предыдущих статьях мы познакомились как управлять ресурсами AWS с помощью Terraform, в данной статье мы посмотрим, как создавать работающий web-сервер с помощью Terraform. Для развертывания настоящего боевого Web сервера, нам понадобится создать с помощью Terraform два ресурса. Инстанс EC2 и группу безопасности для того, чтобы открыть порт 80 во внешний мир. Для начала создадим новую директорию Lesson-2 и файл WebServer.tr. Вспоминаем именно данный файл с данным расширением является основным для написания кода и управления. Напоминаю, что это обычный текстовый файл, который редактируется с помощью любого текстового редактора в нашем случае мы будем использовать текстовый редактор nano. Mkdir Lesson-2 cd Lesson-2 nano WebServer.tr Сразу будем привыкать к оформлению кода и добавим в код комментарии, комментарии добавляются следующим образом. Ставим знак решетки # и за ней пишем комментарий. #----------------------------------------------- # Terraform # #Build WebServer during BootStrap #-------------------------------------------------- Для начала пишем, кто провайдер и регион для размещения наших ресурсов. provider "aws" { region = "eu-central-1" } Кстати, есть интересный сайт awsregion.info на котором можно посмотреть название регионов и место размещение. Сайт на момент написания статьи обновляется и поддерживается в актуальном состоянии. Так первый ресурс это инстанс EC2. Resource служебное слово, далее название ресурса в кавычках и имя, которое мы ему даем в кавычках, далее открываются и закрываются фигурные скобки. Именно между ними мы и будем описывать наш ресурс. Далее добавляем ami – который показывает, какой образ мы будем использовать. Instance_type – тип и размер ресурса, который мы будем использовать. В итоге смотрим, что у нас получилось в первой итерации кода: resource "aws_instance" "WebServer_my" { ami = "ami-0767046d1677be5a0" #Amazon Linux ami instance_type = "t2.micro" } В результате исполнения данной части у нас будет создан инстанс EC2. Далее создадим 2-й ресурс aws_security_group, фактически это правило сети для брандмауэра. Так же описание начинаем со служебного слова resource, далее название ресурса и имя ресурса в кавычках, а в конце открывающаяся и закрывающаяся скобка в которой пойдет описание ресурса. Указываем параметр name - этот параметр обязательный для корректного отображения, description – параметр не обязательный, но можем указать, vpc_id мы не указываем т.к используем ресурс vpc по умолчанию. Далее идет описание правил сетевых на языке Terraform. Служебный параметр ingress для входящего трафика с фигурными скобками где мы вставим порты и другие параметры данного параметра. И второй служебный параметр engress для исходящего трафика с фигурными скобками. Cidr_blocks = [“подсеть”], указывают откуда или куда разрешен данный поток трафика т.е подсеть 0.0.0.0/0 означает весь интернет или все подсети. Обратите внимание: Мы разрешили входящий трафик на 80 порт, тот порт на котором будет работать наш веб сервер. Мы разрешили входящий трафик на 22 порт, тот порт, который может принимать соединение для подключения по SSH протоколу. Мы разрешили ICMP трафик до нашего сервера, чтобы можно было из интернета проверить его доступность. Мы разрешили трафик на 443 порт, если мы в будущем захотим сделать защищенное HTTPS соединение. И мы разрешили весь исходящий трафик с сервера указав protocol “-1” В такой конфигурации кода Terraform мы получим два отдельных ресурса Инстанс EC2 и группу безопасности, но нас такой вариант не устроит. Нам необходимо, чтобы данная группа безопасности была автоматически присоединена к нашему серверу. Это можно сделать с помощью нового параметра, который мы добавим в первую часть кода, где мы описывали aws_instance. Данный параметр называется vpc_security_group_id, с помощью данного параметра можно сразу присоединить несколько групп безопасности, через знак равенства и скобки “= [“номер группы безопасности”]”. Например, номер группы безопасности можно взять той, что создается по умолчанию. Все остальные указываются, через запятую. Но в нашем случае данный вариант не подойдет, потому что у нас должно все подключиться автоматически, т.е присоединить ту группу безопасности, которая создастся и которую мы описали ниже. А делается это достаточно просто после знака = в квадратных скобках без кавычек вставляем aws_security_group – то что это группа безопасности, затем . – разделитель, затем вставляем имя группы безопасности, которую мы создали mywebserver, опять разделитель символ точки ., и мы ходим взять id. В итоге получается следующий параметр и его значение: vpc_security_group_ids = [aws_security_group.mywebserver.id] Этой самой строчкой мы привязали группу безопасности к нашему создаваемому инстансу. И как следствие возникла зависимость инстанса от группы безопасности. Следовательно, Terraform создаст сначала группу безопасности, а затем уже создаст инстанс. Код Terraform не выполняется сверху вниз, зачастую он исполняется в зависимости от зависимостей или вообще одновременно, когда многие части зависят друг от друга. Следовательно, вот в таком коде мы создали зависимость. По коду вы можете заметить, что если необходимо еще дополнительный порт открыть, например, в группе безопасности, то необходимо скопировать часть кода, отвечающую за открытие порта и добавить необходимые настройки, порт и протокол, подправить cidr_blocks. После корректировки вставить в правильное место, как параметр. И для того, чтобы завершить настройку нашего Web сервера, нам необходимо написать параметр user_data. В амазоне это называется bootstrapping, т.е начальная загрузка. User_data = <<EOF Скрипт EOF Как вы видите сам скрипт будет находится между EOF, а знак << говорит о том, что скрипт мы подаем на ввод. Далее, как любой скрипт в Linux системе мы пишем сначала интерпретатор или shell который будет исполнять и на языке понятном для bash. Поэтому в скрипте не должно быть никаких отступов! Это важно, даже если плагин текстового редактора пытается поправить. Теперь сам скрипт: 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 Сначала обновляем систему apt –y update, далее команда apt –y install apache2 устанавливаем apache веб сервер непосредственно. Следующая строка присваиваем значение переменной myip, с помощью получения данных из самого амазона curl http://169.254.169.254/latest/meta-data/local-ipv4. Далее просто добавляем в индексную страницу по умолчанию вывод того что мы получили с подстановкой IP. Следующая строка стартует сервис, и последняя строка проверяет конфигурацию апача. Таким образом, мы получаем полностью готовый скрипт. Нам остается его сохранить в файле и инициализировать Terraform, командой terraform init и даем команду на применение terraform apply. В результате команды мы видим, что будет создано 2 ресурса, все, как и планировалось. Инстанс и группа безопасности. Как мы видим сначала, из-за зависимости создается группа безопасности. А затем поднимается инстанс, к которому и будет привязана данная группа. Спустя пару минут мы можем видеть, что у нас веб сервер поднялся. IP-адрес можно найти в консоли. Далее, если нам более данный Web сервер не нужен, то мы его можем уничтожить простой командой terraform destroy. И мы увидим, что из-за зависимостей ресурсы будут уничтожаться в обратном порядке тому, в котором они запускались. Сначала инстанс, потом группа безопасности. Скрипт вы можете легко модифицировать и добавить более сложные детали установки и настройки веб сервера – это полностью рабочая конфигурация.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59