Автоматизируем сборку Asterisk на Oracle 8

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

В какой-то момент у нас в компании назрела необходимость упростить развертывание ПО Asterisk

Основная проблема возникала при сборке Asterisk из исходников, так как необходимо выбирать нужные/ненужные модули, а простое копирование файла menuselect.makeopts при переходе от версии к версии не всегда срабатывало

До кучи решили переехать с CentOS 6/7 на Oracle 8 (это, как оказалось, еще тот квест 8), так как версия свежая и инструкции, которые в этих ваших интернетах кочуют с сайта на сайт не всегда соответствуют действительности. В частности почти весь день мы угрохали на установку libedit-devel — его небыло в репозиториях, репозиторий PowerTools, на который ссылаются инструкции в интернетах, в Oracle 8 отсуствует. Оказалось, что в Oracle необходимо активировать репозиторий ol8_codeready_builder :)

И так, поехали

1. Устанавливаем Oracle 8, настраиваем сеть

2. Выполняем действия необходимые, чтобы установка Asterisk прошла без танцев с бубном:

firewall systemctl stop firewalld ; systemctl disable firewalld

sudo setenforce 0

sudo sed -i 's/\(^SELINUX=\).*/\SELINUX=permissive/' /etc/selinux/config

dnf in --nogpgcheck https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm 

yum -y groupinstall "Development Tools" 

dnf config-manager --set-enabled ol8_codeready_builder

dnf install mc wget curl bind-utils net-tools mlocate man  mutt tcpdump sysstat rsync unzip rsyslog net-snmp mailx lsof chrony

dnf install git dnsmasq svn nfs-utils patch gdb gcc gcc-c++ ncurses-devel libxml2-devel sqlite-devel unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel libtiff-devel libuuid-devel jansson-devel pjproject-devel ImageMagick ghostscript openssl-devel bzip2  mariadb-connector-odbc libedit-devel 

rm -rf /etc/localtime ; ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

systemctl enable chronyd ; systemctl start chronyd


3. В каталог /usr/src/asterisk скачиваем любимую версию asterisk с официального сайта или клонируем с github (на текущий момент актуальная LTS это 18)

https://downloads.asterisk.org/pub/telephony/asterisk/
https://github.com/asterisk/asterisk

4. Если скачали архив, то разворачиваем его и переходим в созданный каталог

tar zxvf asterisk-18-current.tar.gz ; cd asterisk-18.8.0

5. Запускаем подготовку к сборке

./configure

6. Запускаем сборку menuselect

make menuselect.makeopts

7. Сформируем файл со списком всех модулей

menuselect/menuselect --list-options > ../options.conf

8. В результате выполнения у нас получится файл со следующим содержимым
+ chan_mobile MENUSELECT_ADDONS
- chan_ooh323 MENUSELECT_ADDONS
- format_mp3 MENUSELECT_ADDONS
+ res_config_mysql MENUSELECT_ADDONS
+ app_mysql MENUSELECT_ADDONS
+ cdr_mysql MENUSELECT_ADDONS
+ app_agent_pool MENUSELECT_APPS
+ app_authenticate MENUSELECT_APPS
+ app_bridgeaddchan MENUSELECT_APPS
+ app_bridgewait MENUSELECT_APPS
.....


8. Откроем полученный файл на редактирование и ставим ± у соответсвующих модулей

9. В /usr/src/asterisk создадим файл build, который будет собирать и устанавливать Asterisk только с нужными модулями
#!/bin/bash

pushd asterisk-18.8.0

./configure --libdir=/usr/lib64 --without-dahdi --without-pri --without-gtk2 \
--without-radius --without-x11 --without-speex --with-pjproject-bundled

# ------------------
n=0
while read line; do
# reading each line
n=$((n+1))

STATE=`echo $line | cut -d' ' -f1`
OPTION=`echo $line | cut -d' ' -f2`
CATEGORY=`echo $line | cut -d' ' -f3`

echo "Line No. $n"
echo "$line"
echo "state=$STATE cat=$CATEGORY values=$OPTION"

action='enable'
if [[ "$state" == '-' ]] ; then
action='disable'
fi

menuselect/menuselect --$action $OPTION menuselect.makeopts

echo "-------------------"
done < ../options.conf

make

make install

popd


10. Заталкиваем в git файлы build и options.conf
Источник: https://habr.com/ru/post/587548/


Интересные статьи

Интересные статьи

На тему моего стрима на этой неделе меня вдохновила демонстрация Судхарсана Селвараджа, где он использовал Selenium для игры на виртуальном пианино. Я тоже хотела использ...
В этой статье мы расскажем, как оптимизировать крупный проект в «Битрикс24» и увеличить его производительность в 3 раза, изменяя настройки MySQL и режим питания CPU. Дано Корпоративн...
В прошлой статье на Хабре я рассказал вам о том, как получил в подарок контроллер Canny3 tiny. Мы «поморгали» светодиодом, понажимали на кнопку. На этом в принципе можно было и закончить экспери...
В наши дни, большинство бирж уже давно работают в электронном формате, а сделки совершаются не с помощью выкриков трейдеров из специальной ямы, а в пару кликов через интернет. Для организации...
В процессе управления большими объемами данных и их визуализацией мы все чаще сталкиваемся с необходимостью внедрения единого инструмента доступа к управлению функционалом в хранилище. Причем это...