По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Знаешь ли ты, что Asterisk Gateway Interface (AGI) делится на 3 различных вида: Enhanced AGI (EAGI), DeadAGI и fastAGI. Каждый из них имеет свои функциональные преимущества – он них и поговорим. Enhanced Asterisk Gateway Interface (EAGI) EAGI это более продвинутый AGI, который позволяет обрабатывать аудио – потоки с помощью файлового дескриптора (3). В действительности, с помощью EAGI вы можете создавать собственные приложения, предназначенные для анализа и выполнения различных задач со входящим аудио-потоком. Ниже приведен пример использования EAGI в диалплане: exten => helloworld,1,eagi(somescript.eagi) DeadAGI Указанное приложение выполняет AGI – совместимый скрипт на «мертвых» каналах (тех, на которых произошло событие hung-up). Основное отличие, что скрипт выполняется в экстеншене h. Дело в том, что скрипты, выполняемые через AGI – приложение не корректно отрабатывались на каналах, в которых случилось событие hang up. exten => h,1,DeadAGI(somescript.agi) FastAGI Обычное AGI – приложение задействует собственные (серверные) вычислительные мощности для каждого звонка. Безусловно, при высокой телефонной нагрузке, на сервере могут быть проблемы, связанные с нехваткой ресурсов. Помимо прочего, стандартный AGI имеет ограничения с точки зрения масштабирования. Поэтому, в рамках решения данные проблемы, было создано приложение FastAGI, которое позволяет выполнять скрипт на внешнем сервере, тем самым, «выносить» вычислительную нагрузку с сервера Asterisk на отдельный хост. IP – АТС Asterisk коммуницирует с сервером, на котором находится исполняемый скрипт с помощью TCP сокетов. Вызвать FastAGI можно следующим образом: exten => helloworld,1,AGI(agi://192.168.0.123:4567/somescript.agi) В рамках синтаксиса, мы обращаемся на хост 192.168.0.123 и порт 4567, вызываю скрип с именем somescript.agi. Здесь можно передать различные переменные, как и в обычном AGI.
img
CentOS дистрибутив линукс основанный на коммерческом дистрибутиве RHEL от компании RED HAT. Считается, что CentOS имеет более высокую степень защиты, чем Ubuntu server. И именно поэтому системные администраторы предпочитают его устанавливать в качестве серверного ПО. В данной статье мы рассмотрим установку данной ОС. Для тестовой установки выбрана виртуальная машина, развертывание ВМ на VMware, не является предметом данной статьи. Установка CentOS 7 Подключаем скаченный с официального сайта CentOS дистрибутив (в нашем случае 7, версия 8 и 8.1 устанавливаются аналогично) и запускаем ВМ. Загрузчик предлагает сделать выбор: 1-й вариант - это непосредственно сама установка 2-й вариант - это проверка вашего "железа" и в случае отсутствия ошибок дальнейшая установка. На следующем экране программа предлагает сделать выбор языка и раскладки клавиатуры. В большинстве случаев, на данных серверах работает серверное ПО и подключаются для управления только администраторы. Не вижу большого смысла менять язык интерфейса и раскладку клавиатуры. Нажимаем Continue. Основной экран настроек будущей Операционной системы. Предлагаю начать с настройки сети и имени сервера. Меняем hostname. Рекомендую писать понятные имена или вообще завести классификацию. В дальнейшем это очень облегчит жизнь. Вводим и нажимаем Apply Далее нажимаем кнопку Configure и проваливаемся в настройки сетевого адаптера. Идем в настройки IPv6 и отключаем данный протокол. Это делаем по следующим соображениям. Мало кто использует данный протокол в локальной сети. Для новичков он более сложен в освоении и использовании, чем протокол ipv4. Поэтому он навряд ли вам понадобится. А тот, кто умеет его использовать, данная инструкция будет не интересна. Поэтому в поле Method щелкам и из списка выбираем Ignore. Настраиваем протокол ipv4. Данный протокол самый распространенный. Для настройки, нам потребуется сетевые параметры. Ip, mask, Gateway, DNS и если у вас есть то имя домена. Нажимаем ADD и добавляем ip , маску можно задать 2-мя вариантами CIDR или развернуто. Прописываем ip адрес шлюза. Шлюз должен иметь сетевую связанность с ip адресом машины, т. к. автоматически в системе пропишется маршрут по умолчанию через данный шлюз. DNS cервера. Если у нас один DNS сервер, то просто пишем его Ip адрес, если более их можно указать, через символ запятой. И последнее указываем домен если он у вас есть Search domains. Если нету, то можно оставить поле пустым. Если сетевые пакеты данных должны ходить, каким-то хитрым способом, то для этого есть кнопка Routers, где можно описать маршруты, но думаю новичкам это не понадобится. Жмем кнопку Save и сохраняем настройки. Возвращаемся к главному меню. Следующее Date and Time. В отличии от windows машин, часовой пояс и время, а также синхронизация на серверах CentOS может оказаться критичной. Поэтому данный параметр лучше настроить сразу, как и синхронизацию с ntp сервером. В поле Region выбираем Регион и в поле City выбираем ближайший город. Фактически данные настройки позволяют установить региональный часовой пояс. Данная настройка позволит адекватно анализировать записи логов на сервере и сопоставлять произошедшее с реальным временем. Network Time должно быть включено - это означает, что часы на сервере будут синхронизироваться с серверами ntp в глобальной сети или нажав на значок шестеренок мы можем указать другой ntp сервер с которым наша ОС, будет синхронизироваться. По окончанию настройки нажимаем Done. Следующая настройка, это разбивка Жесткого диска на разделы. В данном разделе можно оставить все в автоматическом режиме, если нет специфических требований к логическим разделам жесткого диска. Можно галочкой отметить шифрование и ввести пароль если данная опция требуется. А также можно выбрать "I will configure partitioning", если предполагается отклонение от рекомендуемых параметров разбивки. Если рекомендуемая конфигурация устраивает, то убедитесь, что галочка установлена как на изображении и жмите Done. Следующий раздел Software Selection. В данном разделе можно выбрать набор прикладного ПО, которое будет установлено на сервер. В данном разделе можно очень гибко настроить, то, что будет установлено вместе с ОС. Minimal Install - это базовая установка функционала по сути это только ОС. Конечно в процессе эксплуатации можно все доставить, но не всегда удобно. Но этого в принципе достаточно для базового функционирования сервера. Остальные пункты можно самостоятельно просмотреть и выбрать то, что необходимо. Жмем на кнопку Done и выходим в главное меню. Основные параметры установки ОС настроены. Можно начинать процесс установки. Жмем Begin Installation. Начинается установка. В процессе установки необходимо задать пароль root. И можно создать пользователя, даже наделить правами Администратора (root). По окончанию процесса вам программа установки предложит перезагрузить ВМ. Жмем Reboot. Установка завершена. Базовая настройка ОС CentOS 7 Для управления серверными *nix ОС, системные администраторы используют подключение по SSH протоколу для этого на Firewall должен быть открыт 22 порт, для подключения и настроен OpenSSH. В базовой установке CentOS7 обычно сразу устанавливается OpenSSH и настраивается правило, открывающее порт 22 на сервере. НО по умолчанию запрещено подключение от пользователя root по ssh к серверу, это сделано в целях безопасности. Поэтому 2 варианта: Если вы создали на этапе установки пользователя и дали ему root права, подключится с помощью ssh. Через окно инсталляции ВМ внести изменение в конфигурацию openssh. Для подключения по ssh в классическом варианте используется программа putty, но на самом деле можно использовать любой ssh клиент. Даже встроенный в ОС Windows. При удачном подключении вы увидите приглашение к авторизации на сервере. Вводим логин и пароль и попадаем в консоль ОС. Примерно это выглядит так. Знак "$" говорит, что мы в пользовательском режиме. Знак "#", о том, что в привилегированном. Мы будем работать в пользовательском режиме для повышения прав используя команду "sudo". Первое, что необходимо сделать это поставить обновления. sudo yum update sudo yum upgrade После обновления для удобства рекомендую поставить Midnight Commander sudo yum install mc -y Устанавливаем сетевые утилиты: sudo yum install net-tools -y sudo yum install bind-utils -y Ставим удобный текстовый редактор nano sudo yum install nano -y Отключаем SElinux sudo setenforce 0 Или отключаем на постоянной основе через sudo nano /etc/sysconfig/selinux и редактируем строчку SElinux=disable. Сохраняем и перезагружаем сервер. Reboot. На этом первоначальная настройка сервера закончена.
img
Если Вы наконец поняли, что повсюду окружены контейнерами и обнаружили, что они решают массу проблем и имеют много преимуществ: Контейнеры вездесущи - ОС, версии библиотек, конфигурации, папки и приложения помещаются в контейнер. Вы гарантируете, что та же самая задача, которая была протестирована в QA, достигнет производственной среды с таким же поведением. Контейнеры упрощены - объем памяти контейнера невелик. Вместо сотен или тысяч мегабайт контейнер будет выделять память только для основного процесса. Контейнеры быстрые - Вы можете запустить контейнер для начала работы так же быстро, как типичный процесс Linux. Вместо минут можно запустить новый контейнер за несколько секунд. Тем не менее, многие пользователи по-прежнему относятся к контейнерам так же, как к типичным виртуальным машинам, и забывают про важную характеристику: они одноразовые. Мантра о контейнерах: “Контейнеры эфемерны”. Эта характеристика заставляет пользователей поменять свое мышление относительно того, как они должны обращаться с контейнерами и управлять ими; и я объясню, чего НЕ следует делать, чтобы продолжать извлекать наилучшие преимущества контейнеров. 10 вещей, которых следует избегать в Docker контейнерах Не хранить данные в контейнерах - контейнер может быть остановлен, удален или заменен. Приложение версии 1.0, работающее в контейнере, может быть легко заменено версией 1.1 без какого-либо неблагоприятного воздействия или потери данных. Поэтому, если нужно сохранить данные, сделайте это на диске. В этом случае следует также позаботиться о том, чтобы два контейнера записывали данные на один и тот же диск, что может привести к повреждению. Убедитесь, что приложения могут записывать данные в хранилище объектов. Не разделять свое приложение на две части - так как некоторые люди видят контейнеры в роли виртуальной машин и поэтому большинство из них склонны думать, что они должны применять свое приложение только в существующих работающих контейнерах. Это может быть справедливо на этапе разработки, на котором Вам необходимо непрерывно разрабатывать и налаживать процесс; но для непрерывной доставки (CD) в QA и производства, Ваше приложение должно быть частью образа. Помните: Контейнеры нельзя изменить. Не создавать большие образы - большой образ будет труднее распространить. Убедитесь в наличии только необходимых файлов и библиотек для запуска приложения/процесса. Не устанавливайте ненужные пакеты и не запускайте обновления (yum update), которые загружают много файлов на новый слой образы. Не использовать однослойный образ - чтобы эффективно пользоваться многоуровневой файловой системой, всегда создавайте собственный базовый слой образы для операционной системы, а также другой слой для определения имени пользователя, слой для установки во время выполнения, слой для конфигурации и, наконец, слой для приложения. Будет проще воссоздать образ, управлять им и использовать его. Не создавать образы из запущенных контейнеров - другими словами, не используйте слово docker commit для создания образа. Этот способ не приносит пользы, и его следует полностью избегать. Всегда используйте полностью воспроизводимый Dockerfile или любой другой S2I (от источника к изображению) подход, и Вы можете отследить изменения в Dockerfile, если сохранить его в хранилище системы управления версиями (git). Не использовать latest (последний) тег – он подобен SNAPSHOT для пользователей Maven. Метки подключаются из-за слоистой файловой природы контейнеров. Вы ведь не хотите иметь сюрпризы при построении образа несколько месяцев, а потом выяснить, что приложение не может быть запущено, так как родительский слой (из-за Dockerfile) был заменен новой версией, которая не является обратно совместимой, или из кэша сборки была получена неправильная "последняя" версия. Тега latest также следует избегать при применении контейнеров в производстве, так как невозможно отследить, какая версия образа выполняется. Не выполнять более одного процесса в одном контейнере - контейнеры идеально подходят для выполнения лишь одного процесса (HTTP, сервер приложений, база данных), но если имеется более одного процесса, могут возникнуть дополнительные проблемы с управлением, извлечением журналов и обновлением их по отдельности. Не хранить учетные данные в виде образов. Используйте переменные среды, ведь для этого не требуется жестко кодировать имя пользователя/пароль в образе. Используйте переменные среды для получения этой информации вне контейнера. Отличный пример этого принципа - образ Постгреса. Не запускать процессы от имени пользователя root - "По умолчанию docker контейнеры выполняются от имени пользователя root. По мере «взросления» docker контейнеров могут стать доступны секретные по умолчанию параметры. На данный момент требуемый root опасен для других и может быть доступен не во всех средах. Ваш образ должен использовать инструкцию USER, чтобы указать пользователя, не являющегося root, для контейнеров, которые будут запускаться". Не полагайтесь на IP-адреса - каждый контейнер имеет свой собственный внутренний IP-адрес, и он может измениться, если вы запустите и остановите контейнер. Если приложению или микросервису требуется связь с другим контейнером, используйте переменные среды для передачи соответствующего имени хоста и порта из одного контейнера в другой.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59