Freeswitch — это сервер для IP телефонии, аналог Asteisk. FusionPBX — это админка для управления freeswitch. Установка в LXC контейнер полезна, если вы хотите легко перенести настроенный freeswitch с одного сервера на другой, с сохранением всех настроек.
Установка контейнера
Скачайте LXC шаблон Debian 8 Jessie:
_x000D_lxc-create -t download -n freeswitch -- -d debian -r jessie -a amd64 Если вы используете LibVirt, пропишите следующие настройки:
_x000D_sed -i "s|lxc.network.link =.*|lxc.network.link = virbr0|g" /var/lib/lxc/freeswitch/config_x000D_virsh net-update default add-last ip-dhcp-host "<host name='freeswitch' ip='10.0.0.150' />" --live --config Создайте конфиг LibVirt из LXC config:
_x000D_virsh -c lxc:/// domxml-from-native lxc-tools /var/lib/lxc/freeswitch/config > ~/freeswitch.xml Отредактируйте xml файл, командой nano ~/freeswitch.xml
Содержимое файла xml:
_x000D_<domain type='lxc'>_x000D_ <name>freeswitch</name>_x000D_ <uuid>35a17f7c-e38a-4051-b1e1-f9d3ab6b948d</uuid>_x000D_ <memory unit='KiB'>65536</memory>_x000D_ <currentMemory unit='KiB'>65536</currentMemory>_x000D_ <vcpu placement='static'>1</vcpu>_x000D_ <os>_x000D_ <type arch='x86_64'>exe</type>_x000D_ <init>/sbin/init</init>_x000D_ </os>_x000D_ <idmap>_x000D_ <uid start='0' target='100000' count='65536'/>_x000D_ <gid start='0' target='100000' count='65536'/>_x000D_ </idmap>_x000D_ <features>_x000D_ <capabilities policy='allow'>_x000D_ </capabilities>_x000D_ </features>_x000D_ <clock offset='utc'/>_x000D_ <on_poweroff>destroy</on_poweroff>_x000D_ <on_reboot>restart</on_reboot>_x000D_ <on_crash>destroy</on_crash>_x000D_ <devices>_x000D_ <emulator>/usr/lib/libvirt/libvirt_lxc</emulator>_x000D_ <filesystem type='mount' accessmode='passthrough'>_x000D_ <source dir='/var/lib/lxc/freeswitch/rootfs'/>_x000D_ <target dir='/'/>_x000D_ </filesystem>_x000D_ <interface type='network'>_x000D_ <mac address='00:16:3e:09:96:30'/>_x000D_ <source network='default' bridge='virbr0'/>_x000D_ <target dev='vnet0'/>_x000D_ <guest dev='eth0'/>_x000D_ <link state='up'/>_x000D_ </interface>_x000D_ <console type='pty' tty='/dev/pts/0'>_x000D_ <source path='/dev/pts/0'/>_x000D_ <target type='lxc' port='0'/>_x000D_ <alias name='console0'/>_x000D_ </console>_x000D_ </devices>_x000D_</domain>_x000D_ Обратите внимание на секции idmap, interface, console . Задайте в них корректные значения.
Импортируйте конфигурацию:
_x000D_virsh -c lxc:/// define ~/freeswitch.xml Запустите контейнер:
_x000D_virsh -c lxc:/// start freeswitch Пропишите root пароль для контейнера:
_x000D_nano /var/lib/lxc/freeswitch/rootfs/etc/shadow Замените строку root на следующую:
_x000D_root:$6$jOJaaad3$213aac5XXw7XMVrtI8dPuwyJazAeMOoaq5QOvo.uf/7V70lA3PIsV7WAiM3d1SWPyDkPiVTvizRHta1P7ZyKs/:17541:0:99999:7::: Это хэш пароля qwerty!2 . Сохраните изменения и выйдите из редактора nano.
Подключитесь к гостевой консоли, используя команду:
_x000D_virsh -c lxc:/// console freeswitch Введите логин root и пароль qwerty!2. Чтобы отключиться от терминала нужно нажать клавиши Ctrl+5
Настройка контейнера
Установите базовые программы:
_x000D_apt update && apt-get upgrade -y && apt install -y mc nano htop wget net-tools sudo less aptitude apt-utils Пропишите следующие содержимое файла nano /etc/apt/sources.list
_x000D_deb http://deb.debian.org/debian jessie main contrib non-free_x000D_deb http://deb.debian.org/debian jessie-updates main contrib non-free_x000D_deb http://security.debian.org jessie/updates main contrib non-free Обновите кэш:
_x000D_apt update Установите ssh сервер:
_x000D_apt install openssh-server Создайте нового пользователя для подключения через SSH:
_x000D_useradd -m -s /bin/bash username_x000D_usermod -a -G sudo username Задайте пароль для этого пользователя:
_x000D_passwd username Выйдите из логина:
_x000D_exit Отключитесь от терминала нажав клавиши Ctrl+5 .
Подключитесь к контейнеру через SSH:
_x000D_ssh username@10.0.0.150 Перейдите под пользователя root:
_x000D_sudo su Установка Freeswitch и FusionPBX
_x000D_apt install -y git_x000D_cd /usr/src_x000D_git clone https://github.com/fusionpbx/fusionpbx-install.sh.git_x000D_chmod 755 -R /usr/src/fusionpbx-install.sh_x000D_cd /usr/src/fusionpbx-install.sh/debian_x000D_./install.sh_x000D_