Подключение к lxc контейнеру centos 7 по ssh в proxmox

Содержание

Подключение к lxc контейнеру centos 7 по ssh в proxmox

Proxmox Virtual Environment — это система, предоставляющая простой и удобный веб-интерфейс для управления виртуальными машинами (используется KVM) и контейнерами (LXC) на вашем кластере физических машин. Фактически, при помощи Proxmox вы можете создать свой маленький Amazon Web Services на собственном железе.

В общем и целом, система очень похожа на Parallels Virtual Automation, с которым мы знакомились ранее, только распространяется бесплатно и с открытыми исходными кодами. Также предоставляется и платная техническая поддержка.

Как мы скоро убедимся, со своей задачей Proxmox справляется не хуже PVA, а в чем-то, возможно, и лучше.

Установка

Качаем ISO-образ отсюда, записываем на флешку как обычно при помощи dd:

sudo dd if=./proxmox-ve.iso of=/dev/sdb bs=1M

Флешку втыкаем в будущую хост-машину. Помним, что для работы KVM требуется, чтобы CPU умел технологию Intel VT-x или AMD-V.

Насколько я понимаю, все процессоры семейства Intel Core i5 и Intel Core i7 поддерживают аппаратную виртуализацию, но на всякий случай сверьтесь с информацией в BIOS и описанием вашей конкретной модели CPU на сайте производителя. Также на время установки нам понадобятся монитор и клавиатура.

Сама установка ничем не примечательна, по сути просто жмем Next → Next → Next. После перезагрузки вводим в веб-браузере https://192.168.0.105:8006, где 192.168.0.105 нужно заменить на IP вашего сервера. Обратите внимание, что нужно обязательно ввести https! Для входа используем имя пользователя root и пароль, указанный при установке.

Важно! Примите во внимание что по умолчанию на сервер также можно зайти пользователем root по SSH, используя тот же пароль.

Использование

Админка выглядит приблизительно таким образом:

Для создания виртуалки сначала нужно залить установочный ISO-образ системы. Я лично экспериментировал на FreeBSD. В дереве слева выбираем Datacenter → proxmox → local, открываем вкладку Content, жмем Upload. Затем в правом верхнем углу жмем Create VM.

Диалог создания новой виртуальной машины ничем не примечателен, все просто и понятно. После создания говорим виртуалке Start. Затем жмем Console → noVNC. В результате подключаемся к виртуалке по VNC прямо через браузер.

Все это работает в самом обычном Chromium без Flash’а и Java-апплетов. Крутяк!

Чтобы создать контейнер, идем в Datacenter → proxmox → local, во вкладке Content жмем Templates. Скачиваем интересующие нас шаблоны. Я лично выбрал Ubuntu 14.04.

Затем жмем Create CT, и там в диалоге по сути просто говорим Next → Next → Next. Чтобы зайти в контейнер, заходим по SSH на хост-систему, говорим pct list, смотрим id контейнера. У меня он был равен 101. Затем говорим pct enter 101.

Там можно создать пользователя, добавить его в sudoers и вот это все:

adduser eax
usermod -a -G sudo eax

Теперь под только что созданным пользователем можно зайти напрямую в контейнер по SSH, sshd в контейнере уже был поднят.

Proxmox VE поддерживает клонирование виртуальных машин. Клонирование контейнеров, насколько я смог разобраться, пока почему-то не реализовано. В дереве справа жмем ПКМ по виртуалке, говорим Convert to Template. Снова жмем ПКМ, жмем Clone. В результате получаем кучу копий одной и той же виртуальной машины, удобно.

Для создания бэкапов нам понадобится настроить NFS сервер. В принципе, ничто не мешает поднять его прямо на одной из виртуалок. Затем в дереве слева кликаем на Datacenter, открываем вкладку Storage, жмем Add → NFS.

В поле Server вводим IP-адрес NFS-сервера, в выпадающем списке Export выбираем экспортируемый им каталог. В выпадающем списке Content кликаем по очереди на все пункты, чтобы они добавились к списку.

Нигде больше не видел такого нестандартного элемента управления!

Теперь проверяем, что резервное копирование и восстановление из резервных копий работает как для виртуальных машин, так и для контейнеров. Заметьте, что можно настроить автоматическое создание резервных копий по расписанию.

Помимо резервного копирования для KVM также есть механизм снапшотов, позволяющий запоминать состояние виратуалок и откатываться к ранее запомненному состоянию. Очень интересно выглядит в действии, обязательно попробуйте.

Проверить работу Proxmox VE с несколькими хост-машинами я, за неимением такого количества лишних машин, к сожалению, не смог.

Однако согласно этой статье в официальной wiki, объединение машин в кластер производится одной командой, после чего все работает точно так же. Правда, остается открытым вопрос, не разваливается ли все при сетевых проблемах.

Надеюсь, кто-то из читателей, активно использующих Proxmox, сможет пролить свет на этот вопрос в комментариях.

Заключение

Напоследок хочется отметить несколько вещей, которые мне не очень понравились в Proxmox:

  • Через веб-интерфейс не видно, какие IP имеют виртуальные машины. Впрочем, в реальной системе вы, скорее всего, все равно захотите использовать Consul или какое-то иное service discovery решение. Так что, пожалуй, это не такая уж большая проблема;
  • Для NFS не поддерживается авторизация. Доступ к NFS-серверу можно ограничить только по IP;
  • Нельзя так просто взять и переименовать шаблон виртуалки. Нужно создать новый шаблон с другими именем, потом удалить старый. К счастью, это вполне работает, даже если у шаблона были linked (то есть, не full) клоны;

Проблемы после миграции с openvz на lxc в Proxmox 4.x

Подключение к lxc контейнеру centos 7 по ssh в proxmox

9 марта 2016 в 16:02 (МСК) | сохранено9 марта 2016 в 16:05 (МСК)

К сожалению, развитие openvz зашло в определенный тупик, платный вариант virtuozo сильно ушел по кодовой базе в бок и в какой-то момент оказалось, что openvz работает только на старом ядре версии 2.6.32, а работы по слиянию openvz и virtuozo7 идут, сказать честно, не быстро.

Собственно это подтолкнуло команду proxmox в версии 4.0 отказаться от openvz в пользу lxc и ядра версии 4.2.6. К сожалению, команда proxmox совершенно не уделила внимания тестированию lxc в proxmox, всем, кто хочет хочет мигрировать с openvz, я настоятельно рекомендую воздержаться.

Ниже я расскажу о всех трудностях и проблемах после миграции на lxc.

Я пробовал несколько раз уже lxc, сказать честно, он был полон детских проблем, и это каждый раз меня отталкивало от использования его в продакшене, а хоумпаги я могу похостить и на openvz без детских проблем lxc, даже тот же докер намного дальше ушел в стабильности и предсказуемости.

Из глобальных проблем openvz мне вспоминается только проблема в centos 7 где не подымалась сеть, и надо было дефолтроут прописать ручками в rc.local, или установкой вот этого патча.

В lxc оказалось все намного хуже, я переходил на него с openvz, когда вышла версия proxmox 4.1, я честно думал все будет работать в lxc ожидаемо и стабильно, как в винде после первого сервис пака.

Плюсом было конвертнуть бекап openvz в lxc двумя командами, но к сожалению переезд в итоге откликнулся мучительной болью и кучей потеряного времени, лучше бы я ещё годик посидел на openvz. lzop -d vzdump-openvz-126-2016_01_27-11_08_32.tar.lzo pct restore 126 vzdump-openvz-126-2016_01_27-11_08_32.

tar rootfs local:0

Опцию убирающую дисковую квоту rootfs local:0 используйте если у вас хранилище не на lvm или zfs. Вот более подробное руководство для тех, кто не разобрался.

Пять основных проблем lxc которые я встретил:

  • В centos 6 пхп не коннектиться к сокету mysql, надо везде прописывать вместо localhost айпи 127.0.0.1, долго рыл эту проблему но решения не нашел, сперва думал это связано с тем, что я конвертил из openvz, но на свежей инсталяции lxc centos 6 наблюдается такая же проблема. Пробовал ставить percona 5.6 проблема сохраняется.
  • Чудовищно медленная работа lxc в image base, то есть если файлы храняйтся в виде образа диска на хостовой машине то производительности дисковой подсистемы падает в разы, от 3 до 20 раз. Я не тестил lxc на lvm и zfs. На lvm до сих пор нет thin provision, но обещают в следующих версиях. У меня довольно много всего развернуто в image base в kvm и там есть определенный оверхед на записать на диск, но он измеряется в процента, даже наверно не в десятках процентов, но такого подвоха чтобы запись в mysql стала в 20 раз медленее от lxc в proxmox я не ожидал. Вылечил в итоге хранением файлов гостей напрямую в файловой системе хоста как в openvz. При этом не работают дисковые квоты, но так как места навалом и стоит мониторинг места то забил на квоты, хотя для ссд систем дисковые квоты более актуальны. При создании и востановление указывайте опцию rootfs local:0, из вебинтерфейса к сожалению этого сделать нельзя.
  • Не работающие бекапы lxc, бекап proxmox просто зависал на suspend vm даже в версии proxmox 4.1, этот баг пофиксили буквально 2 марта.
  • Оно реально медленнее openvz.
  • Два контейнера у меня намертво зависли и их не получилось убить никакими способами, сервер мягко ребутнуть тоже из за них не получилось в итоге пришлось сделать ресет кнопкой на сервере.
  • Не удалось запустить нормально дебиан 6 после конвертации в lxc, точно не помню в чем была проблема, но в связи с тем что дебиан 6 сильно легаси, перенес все приложения в свежий debian 8 руками.
  • Выше уже упомянал что php не коннектиться к mysql по socket.
  • В centos 6 не подымается сеть из за переименования сетевых интерфейсов с venet на eth0, надо зайти в контейнер с хоста через pct enter ID и выполнить команды sed -i -e 's/venet0/eth0/g' /etc/sysconfig/network rm -rf /etc/sysconfig/network-scripts/ifcfg-venet0:0 rm -rf /etc/sysconfig/network-scripts/ifcfg-venet0reboot
  • Нельзя зайти в контейнер redhat based по ssh из за отсутствия tty, как то криво отрабатывает udev после конвертации, полечил вот так pct enter ID sed -i -e 's/start_udev/false/g' /etc/rc.d/rc.sysinitreboot

1) Подробное руководство по обновлению proxmox 3->4;

2) Описание проблемы со скоростью дисков в lxc: раз, два, три; 3) Поддержка proxmox 3.x закончится в апреле 2016;

4) Тред, почему lxc плохой;

5) Как смигрировать c lxc обратно в openvz.

Надеюсь, этот пост сохранит кому-нибудь кучу времени.

PROXMOX 5 установка и настройка | сЭВО:эволюция работ

Подключение к lxc контейнеру centos 7 по ssh в proxmox

Установим систему виртуализации Proxmox 5 версии на Raid1 в операционной системе Debian 9. В качестве гипервизора система использует KVM и LXC. Возможность виртуализировать все популярные операционные системы. Удобная и понятная панель управления.

Введение

Использовать систему в работе удобно и за все время использования она меня не подводила. Начинал использование с 4 версии, но вышла 5 версия с очень удобными и функциональными изменениями.

Сразу после выхода новой версии любого программного продукта я не спешу обновляться и всегда жду в районе 3 месяцев, так я избавляю себя от ошибок которые всегда есть при выходе любой новой версии.

На сайте разработчика есть инструкции как производить обновление на новую версию. Вариант установки как с готового образа iso так и ручная установки на Debian.

В моем случае я как раз нарушил оба этих правила и обновить систему не удалось.

Сильно установка и подход к варианту использования мной в новой версии не отличается от предыдущей. Перейдите по ссылке и найдете там все нужную информацию. Ниже будет дана ссылка на инструкцию по установке от производителя ей и руководствуйтесь.

Открыть в новом окне…

В этой статье я расскажу об моих нюансах при настройке, более расширено поведаю про вариант моей настройки и за что именно мне так нравится работать с этой системой.

Установка Proxmox 5 с нюансами

В дальнейшем будем исходить из того что:

  • Настроена пересылка почты на внешний адрес,
  • Установлен SWAP раздел в виде файла,
  • Используется mdadm raid1,
  • Используется два сетевых интерфейса.

Инструкция по установке от разработчика Proxmox

На сайте справки разработчика вы найдете подробную инструкцию как установить Proxmox 5 версии на систему Debian 9.

Изучив инструкцию разработчика и мою предыдущую статью у вас придет понимание о том как необходимо правильно устанавливать систему виртуализации.

Подключение старых Raid 1 масивов

В моем случае в старой системе было 2 диска на которых было 2 массива RAID1. После подключения дисков в Proxmox 5 выведем информацию о массивах:

cat /proc/mdstat = вывод команды = Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md126 : active raid1 sdc1[0] sdd1[1] 972668928 blocks super 1.2 [2/2] [UU] bitmap: 0/8 pages [0KB], 65536KB chunk md127 : active (auto-read-only) raid1 sdc2[0] sdd2[1] 980582464 blocks super 1.2 [2/2] [UU] bitmap: 0/8 pages [0KB], 65536KB chunk md1 : active raid1 sdb2[1] sda2[0] 244066304 blocks super 1.2 [2/2] [UU] bitmap: 1/2 pages [4KB], 65536KB chunk md0 : active raid1 sdb1[1] sda1[0] 975296 blocks super 1.2 [2/2] [UU] unused devices:

Видим два массива md126 и md127. Такую нумерацию дала система по умолчанию. Меня это не совсем устраивает и я переименую их в md2 и md3 соотвественно. Переименование осуществляем стандартным способом.

Останавливаем и удаляем массив:

mdadm stop /dev/md126 mdadm remove /dev/md126

Собираем с новым именем:

mdadm assemble /dev/md2 /dev/sd[cd]2 update=name

Добавляем в /etc/mdadm/mdadm.conf нужную информацию:

mdadm examine scan | grep 'md/2' >> /etc/mdadm/mdadm.conf

Проверим выполненные действия:

cat /etc/mdadm/mdadm.conf = вывод команды = # mdadm.conf # # Please refer to mdadm.conf(5) for information about this file. # # by default (built-in), scan all partitions (/proc/partitions) and all # containers for MD superblocks. alternatively, specify devices to scan, using # wildcards if desired. #DEVICE partitions containers # automatically tag new arrays as belonging to the local system HOMEHOST # instruct the monitoring daemon where to send mail alerts MAILADDR root # definitions of existing MD arrays ARRAY /dev/md/0 metadata=1.2 UUID=d2f35a7c:c01935c3:4518c36a:fa9bab1c name=proxmox:0 ARRAY /dev/md/1 metadata=1.2 UUID=30b2043b:d51bfbca:a663c213:07fccdbe name=proxmox:1 ARRAY /dev/md/2 metadata=1.2 UUID=50b54af3:041683d2:376764c3:a9a3b1ec name=proxmox:2

Все хорошо. Мы изменили название массива, но после перезагрузки вы удивитесь что названия не изменились и это особенность системы Proxmox.

Обновим ядро выполнив необходимую команду:

Все другие массивы делаем аналогичным способом.

Настройка сетевых интерфейсов

Настройка сетевых интерфейсов это отдельная тема и сильно вникать в детали я не буду. Расскажу как использую я и что считаю самым удобным и оптимальным при использовании.

В случае использования одного сетевого интерфейса все просто. Создаете Bridge и все виртуальные машины будут в одной локальной сети.

При использовании двух сетевых интерфейсов варианты реализации увеличиваются. В моем случае сетевой шлюз расположен на виртуальной машине и весь сетевой трафик идет через него. Для такого варианта реализации на обоих сетевых интерфейсах создаем Bridge.

Вот так выглядят мои сетевые настройки в панели управления Proxmox 5:

На всякий случай, для понимания, приведу пример как это выглядит в файле настроек сетевых интерфейсов:

cat /etc/network/interfaces = вывод команды = auto lo iface lo inet loopback source /etc/network/interfaces.d/* iface enp5s0f0 inet manual iface enp5s0f1 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.106 bridge_ports enp5s0f0 bridge_stp off bridge_fd 0 auto vmbr1 iface vmbr1 inet static address 192.168.1.100 netmask 255.255.255.0 bridge_ports enp5s0f1 bridge_stp off bridge_fd 0

Распишу что к чему в этой настройке:

  • enp5s0f1 — физическая сетевая карта в которую вставлен провод от внешней сети с которой получаю интернет от роутера Asus,
  • vmbr1 — Bridge сетевой карты enp5s0f1 которому назначен сетевой адрес 192.168.1.100 и другие необходимые параметры,
  • enp5s0f0 — физическая сетевая карта которая работает с внутренней локальной сетью,
  • vmbr0 — Bridge сетевой карты enp5s0f0 которому назначен сетевой адрес 192.168.0.100 и другие необходимые параметры.

При настройке виртуальной машины в качестве шлюза надо добавить два сетевых устройства и назначить каждой свой Bridge и выполнить необходимые настройки для шлюза. Будут вопросы внизу есть комментарии на которые я всегда отвечаю.

Проброс портов в локальную сеть с интернета

Немного расскажу о пробросе необходимых портов на нужную машину в локальной сети из интернета при моем варианте организации сетевых настроек.

Проброс складывается из двух действий:

Останавливаться на настройке самого шлюза не буду. Скорей всего расскажу об этом в своих следующих статьях.

Прелести работы с Proxmox 5

Коротко пробегусь по основным моментам в работе с Proxmox 5 дабы вы смогли оценить всю прелесть использования этой системы.

Подключение новых хранилищ

По умолчанию после установке в системе находится всего одно хранилище. При желании вы можете подключить и другие хранилища разными популярными способами. Выбор вариантов удовлетворит почти любые требования.

Для каждого хранилища помимо указывания названия, места и способа расположения есть два параметра:

Вот так всё это выглядит в панели управления:

Загрузка образов и шаблонов

Перед тем как приступить к установке виртуальной машины или контейнера LXC необходимо их туда загрузить.

Выбираем хранилище, переходим в «Содержимое» в случае с загрузкой iso выбираем «Загрузить». Для контейнеров выбираем «Шаблоны».

Вот так выглядит вариант загрузки ISO образа:

После загрузки нажимаем «Создать VM» или «Создать СT»

Создание виртуальной машины и LXC

Не буду рассказывать про установку LXC опишу установку виртуальной машины так как такой вариант максимально часто используется.

Установка производится в несколько этапов. На первом этапе необходимо указать ID машины и название. На практике для удобства я назначаю id машины такой же какой в последствии будет ip адрес машины. При таком варианте мне всегда просто понять как подключится к машине по ssh. В имени я всегда указываю какую роль выполняет машина и какая операционная система.

На следующем шаге нам необходимо выбрать iso образ требуемой операционной системы.

Выбор вариантов установки операционных систем радует.

Для систем Linux я обычно использую вариант как показан ниже.

CPU мы выбираем на свое усмотрение и потребности, но что самое приятное как в выборе CPU так и памяти в следствии, это что всегда можно изменить исходя из загрузки и указать оптимальные параметры.

Память можно указать как жестко таки и задать диапазон в зависимости от специфики виртуальной машины. Использую оба варианта и проблем не возникает.

Сетевые параметры тоже не вызывают больших вопросов и выбираются в зависимости от того как вы настроили свой гипервизор на базе Proxmox 5.

На финальной стадии смотрим все параметры что выбрали и если всё устраиваем жмем «Завершить» и машина создастся в очень короткий срок.

Вот такими четкими и понятными шагами мы создали виртуальную машину и что меня всегда радует — все параметры можно изменить. Сложность может возникать только в работе с жесткими дисками, но это уже совсем другая пляска.

Консоль работы с виртуальными машинами

Первое что нам потребуется при работе с виртуальными машинами это монитор для работы с машиной. Грубо говоря консоль это монитор нашей виртуальной машины который мы можем использовать двух типов.

Два типа варианта консоли для работы с виртуальными машинами или CLX:

  • В окне самой панели управления, но это не всегда удобно так как зависит от разрешения экрана
  • Вывод в отдельном окне по нажатию кнопки «Консоль» сверху справа и с последующей возможности развернуть на весь экран.

Работать в консоли довольно просто и понятно.

В последствии, как правило, на системах Windows вы настроите «Удаленный рабочий стол» а для работы с системами LInux вы будете использовать ssh и работать через консоль.

Проброс USB устройств в виртуальную машину

Эта пожалуй самая главная вкуснятина в новой версии. В предыдущей статье я изложил как произвести USB проброс в Proxmox в старой версии (а в последствии обновил статью и добавил возможности в 5 версии). Перейдите по указанной ссылке и увидите как разработчики идут на встречу удобству использования своей системы.

Резервное копирование виртуальных машин в системе Proxmox 5

Никогда нельзя быть на 100% уверенным в правильности выполняемых действий и спасти от краха системы может только правильный подход при создании резервных копий. В системе Proxmox ребята решили вопрос с бэкапами идеально.

Существует два способа резервного копирования.

Ручное создание бэкапа

Выбираем нужную машину, переходим в «Резервирование», и нажимаем «Резервировать сейчас» настраиваем параметры что нам надо и получаем резервную копию в очень короткий период. Окно можно закрывать и позже открыть для просмотра результата.

Автоматическое создание бэкапа

Тут все еще приятней. Переходим в «Датацентр» — «Резервирование» и добавляем задания для резервирования.

Все что надо для параметров есть. Время, период и на какую почту оповещать и тд. и тп.

Восстановление из резервной копии

Переходим в раздел восстановления выбираем нужную копию и жмем «Восстановление».

Вот так удобно и просто работать с резервным копированием.

Варианты загрузки виртуальных машин

Присутствует возможность автоматически загружать виртуальную машину после перезагрузки системы Proxmox. Порой бывает необходимо чтобы какая то машина стартовала первой а следом все остальные. Даже такую нужную опцию разработчики предусмотрели.

В закладке «Опции» виртуальной машины есть значения:

  • Запуск при загрузке — выбираем ДА или НЕТ,
  • Start/Shutdown order — параметры запуска и остановки машины. По умолчанию стоит параметр order=any.

Вот так выглядит окно с настройками Start/Shutdown order:

Выбираем какая по очереди стартует машина, задержка в секундах перед запуском следующих и параметр принудительного выключения если машина при перезагрузки системы не остановится корректно.

Мониторинг виртуальных машин

На закладке «Сводка» у виртуальной машины вы увидите все основные параметры работы виртуальной машины. Можно при желании заполнить блок «Заметки».

Информация SMART о состоянии HDD

Перейдя в раздел «Disks» вы увидите все ваши диски и можете посмотреть состояние SMART.

Мало того если выйдет из строя Raid1 вы получите сообщение на почту. Вот такое пришло мне сообщение на почту когда на диске стали проявляться плохие сектора:

This message was generated by the smartd daemon running on:

host name: proxmox
DNS domain: sevo44.loc

The following warning/error was logged by the smartd daemon:

Device: /dev/sdf [SAT], 1 Currently unreadable (pending) sectors

Device info:
WDC WD10EARS-00Y5B1, S/N:WD-WMAV51109954, WWN:5-0014ee-0ac9680cc, FW:80.00A80, 1.00 TB

For details see host’s SYSLOG.

You can also use the smartctl utility for further investigation.
The original message about this issue was sent at Sat Oct 14 10:21:50 2017 MSK
Another message will be sent in 24 hours if the problem persists.

И все это прямо из коробки без настройки системы мониторинга.

Мониторинг параметров системы

На странице «Датацентр» — «Сводка» вы ознакомитесь со всеми основными параметрами работы системы виртуализаци. Наглядно и красиво.

Права доступа в систему

Права доступа можно предоставлять пользователям по совершенно разным параметрам.

Firewall в системе Proxmox 5

По умолчанию система Firewall на «Датацентр» отключена, но при желании можете настроить на свой вкус и цвет. На самом узле система включена.

Логирование Proxmox

Все необходимые логи вы сможете посмотреть в панели управления.

Вывод

Вы еще не захотели использовать систему виртуализации Proxmox? Попробуйте и вы не пожалеете. Мною используются далеко не все возможности и возможно для себя вы найдёте то, что давно хотели использовать в работе с виртуальными системами без проблем в настройках.

Свобода использования, активное развитие, удобное использование и обслуживание системы однозначно ставит систему Proxmox для меня на первое место. Возможно в последующем я освою как делать репликацию между двумя отдельными системами Proxmox, но в работе это пока не требуется так как в малых и средних организациях вопрос об использовании двух серверов не стоит.

Меня уже радует когда на приобретение одного хорошего сервера выделяют необходимый денежный ресурс.

Создание VPS KVM/LXC в Proxmox

Подключение к lxc контейнеру centos 7 по ssh в proxmox

Система виртуализации Proxmox умеет работать с двумя типами виртуальных машин (KVM и LXC).

Создание виртуальной машины на базе KVM.
1) Настройка VPS.

Node – название нашего сервера (основного).

VM ID – уникальный идентификатор VPS.

Name – название VPS.

Resource Pool – опция предназначена для распределение VPS по группам (если это нужно).

2) Далее выбираем тип ядра ОС.

3) Настройка CD/DVD привода.

Для установки ОС на VPS, нам понадобиться ISO образ, который можно загрузить через панель управления Proxmox (образ должен быть скачан на Ваш локальный компьютер).

Выбираем ISO образ, путь к файлу и нажимаем Upload.

Далее выбираем Use CD/DVD disc image file (iso) и указываем название образа.

4) Настройка винчестера для будущей VPS.

Bus/Device или тип подключение винчестера, доступны следующее: IDE, SCSI, SATA или VIRTIO. Обычно это IDE, либо SATA.

Storage – хранилище, в котором будет размещаться VPS.

Disk size – размер жесткого диска.

Cache – кэш для виртуального диска. С типами кэша более детально можно ознакомиться на официальном сайте Proxmox: https://pve.proxmox.com/wiki/Performance_Tweaks

5) Настройка CPU

Sockets – количество процессоров.

Cores – количество ядер на каждый процессор.

Type – модель процессора.

6) Назначение оперативной памяти.

Use fixed size memory – будет использоваться фиксированный размер памяти.

Automatically allocate memory within this range – оперативная память будет выдаваться по мере его необходимости для VPS, в указанном диапазоне (не рекомендуется использоваться для KVM).

7) Настройка сети между VPS и центральным сервером.

Выбираем Bridged mode и сетевой интерфейс, который настроен на центральном сервере как Bridge.

Model – модель виртуальной сетевой карты

MAC address – указываем mac адрес, который выдан владельцем IP адреса (если IP адрес будет локальным, то это поле следует пропустить).

Rate limit (MB/s) – ограничение пропускной способности для VPS.

8)Подтверждение.

В следующем окне проверяем настройку VPS и если все правильно, подтверждаем. После нажатия Finish начнется процесс создания VPS.

Создание виртуальной машины на базе LXC (контейнер).

1) Поиск шаблона

Для установки VPS LXC необходимо иметь шаблон, который будет в себя включать базовые элементы операционной системы Linux. Найти и скачать их Вы можете на странице: https://wiki.openvz.org/Download/template/precreated

Шаблоны необходимо скопировать на сервер в папку /var/lib/vz/template/cache/

Также доступен более простой вариант загрузки шаблона LXC через панель управления Proxmox.

Находим необходимый образ и жмем Download.

После этого появится прогресс бар с состоянием загрузки шаблона.

2) Общая настройка

Node – название нашего сервера (основного).

VM ID – уникальный идентификатор VPS.

Hostname – имя, которое будет выдано для VPS (FQDN).

Resource Pool – опция предназначена для распределение VPS по группам (если это нужно).

Password – root пароль для VPS.

Confirm password – подтверждение пароля.

3) Выбор шаблона для установки

4) Настройка виртуального диска

Storage – хранилище, где будет расположен виртуальный диск.

Disk size (GB) – размер диска в Гб.

5) Настройка CPU

CPU limit – количество виртуальных ядер.

CPU units – часть процессорного времени, которое будет отдано VPS (значение 1000 равняется 1% реального CPU).

6) Настройка оперативной памяти и файла подкачки (swap)

7) Настройка сети между VPS и центральным сервером

Необходимо заполнить следующее поля:

MAC address (опционально) – при наличии мак адреса, укажите его в этом поле.

IPv4 – если основной сервер не настроен для раздачи IP адресов, укажите статическую настройку в формате IP/маска, например IP и маска 192.168.0.200/24, затем шлюз (192.168.0.1).

8)Настройка DNS серверов (опционально)

9) Подтверждение

Проверяем правильность настройки сервера и нажимаем Finish. После этого VPS начнет процесс установки.

Хостинг php-сайтов на proxmox

Подключение к lxc контейнеру centos 7 по ssh в proxmox

Вступление

Задача следующая: Необходимо обеспечить хостинг LAMP+WordPress сайтов. Сайты должны быть изолированы друг от друга, при этом необходимо обеспечить доступ заказчикам к файлам сайта через ssh, ftp, и sftp.

В данной статье будет рассмотрен вариант реализации при помощи среды виртуализации Proxmox 4. На виртуальных машинах будем использовать ubuntu-14-04 из официальных шаблонов proxmox.

Схема

Как это работает

Для каждого wordpress создается отдельная виртуальная машина (контейнер LXC). Для доступа к контейнерам в качестве фронт-энд создается одна виртуальная машина GW с белым IP. На ней настраиваем Nginx-reverse-proxy для выставления наружу сайтов, ssh-сервер и ftp-сервер. Кроме того, на GW настраиваем NAT для выхода виртуальных машин в интернет (по необходимости).

Доступ клиентам к виртуальной машине по SSH:

На GW для каждого клиента делается аккаунт, при подключении клиента по ssh (авторизация по ключу) вместо /bin/bash автоматически запускается ssh, который соединяется с виртуальной машиной клиента (авторизация по ключу).

Доступ клиентам к файлам на виртуальной машине по sftp:

На GW настраивается отдельный sshd на порту 2222. При подключении к нему, делается chroot в домашнюю директорию пользователя + автоматически происходит переключение на протокол sftp.
В домашнем каталоге организуем папку в которую будет смонтирована (automount+sshfs) файловая система с виртуальной машины клиента.

Доступ клиентам к файлам на виртуальной машине по ftp:

Аналогично предыдущему пункту, настраивается ftpd, который делает chroot в домашнюю директорию пользователя.

Доступ разработчикам к файлам на виртуальной машине по sftp:

Для разработчиков создается отдельный аккаунт, в домашнем каталоге которого смонтированы файловые системы всех виртуальных машин (automount+sshfs). Подключение осуществляется так же к порту 2222.

Настраиваем

Все действия будем производить в консоли на Proxmox-хосте.

Разворачивание виртуальных машин, настройка nginx и wordpress

Сперва развернем виртуальную машину для GW

pct create 100 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -hostname GW -storage local -password wigsikjis -net0 name=eth0,bridge=vmbr0,ip=192.168.77.74/24,gw=192.168.77.254 -net1 name=eth2,bridge=vmbr1,ip=10.100.100.1/24 -cpulimit 1 -onboot 1 # Отключаем apparmor в контейнере. Иначе не будет работать autofs
echo “lxc.aa_profile: unconfined” >> /etc/pve/lxc/100.conf
# прописываем монтирование /dev/fuse в контейнере (для sshfs)
echo “lxc.mount.entry = /dev/fuse dev/fuse none bind,create=file 0 0” >> /etc/pve/lxc/100.conf
# Стартуем контейнер, заходим
pct start 100
pct enter 100
apt-get -y update; apt-get -y upgrade
# настраиваем русскую локаль
locale-gen en_US en_US.UTF-8 ru_RU ru_RU.UTF-8
dpkg-reconfigure locales
# устанавливаем ништяки
apt-get -y install aptitude
aptitude -y install mc curl # syslog error workaround
rm /var/log/syslog; service rsyslog restart # add user for developers
adduser pmadmin

включаем NAT и маршрутизацию:

aptitude install iptables-persistent
sed -i '/:POSTROUTING ACCEPT/a -A POSTROUTING -s 10.100.100.0/24 -o eth0 -j MASQUERADE' /etc/iptables/rules.v4
service iptables-persistent restart
echo “net.ipv4.conf.all.forwarding = 1” > /etc/sysctl.d/60-ip-forwarding.conf
sysctl -p /etc/sysctl.d/60-ip-forwarding.conf

Настраиваем nginx reverse-proxy

aptitude -y install nginx echo 'server <
listen 80;
server_name test1.example.com; proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr; access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log; location / <
proxy_pass http://10.100.100.104/;
>
>' > /etc/nginx/sites-available/test1.example.com ln -s /etc/nginx/sites-available/test1.example.com /etc/nginx/sites-enabled/
service nginx restart

Развернем виртуальную машину для wordpress-сайта

pct create 100104 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -hostname vm100104 -storage local -password wigsikjis -net0 name=eth0,bridge=vmbr1,ip=10.100.100.104/24,gw=10.100.100.1 -cpulimit 1 -onboot 1 pct start 100104
pct enter 100104
apt-get -y update; apt-get -y upgrade
locale-gen en_US en_US.UTF-8 ru_RU ru_RU.UTF-8
dpkg-reconfigure locales
apt-get -y install aptitude
aptitude -y install mc
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
service ssh restart

Устанавливаем LAMP + WordPress

aptitude -y install php5 mysql-server php5-mysql
rm /var/www/html/index.html
wget -O https://wordpress.org/latest.tar.gz | tar -C /var/www/html strip-components=1 -xz
chown -R www-data:www-data /var/www/html
echo &#8220;CREATE DATABASE wordpress character set utf8;&#8221; | mysql

Добавляем у себя в hosts ip нашего севера и устанавливаем wordpress

sudo echo &#8220;192.168.77.74 test1.example.com&#8221; >> /etc/hosts
firefox test1.example.com

Настройка доступа по ssh к виртуальной машине

На GW заводим пользователя vm100104, генерируем ssh ключ, затем кладем этот ключ на виртуальную машину.

adduser vm100104
su vm100104
ssh-keygen
ssh-copy-id root@10.100.100.104
exit

Открываем доступ пользователю на GW кладем его публичный ключ пользователя (из putty) в authorized_keys + привязываем к этому ключу команду

su vm100104
echo 'command=&#8221;ssh root@10.100.100.104&#8243;,no-X11-forwarding,no-agent-forwarding,no-port-forwarding ssh-rsa AAAAB3Nza&#8230;..' >> /home/vm100104/.ssh/authorized_keys
exit

Проверяем со своего компа (видим приглашение root@vm100104 значит мы на виртуалке vm100104):

$ ssh vm100104@192.168.77.74
X11 forwarding request failed on channel 0
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 4.2.3-2-pve x86_64) * Documentation: https://help.ubuntu.com/
Last login: Tue Dec 22 08:39:44 2015 from 10.100.100.3
root@vm100104:

Настройка autofs и sshfs на GW

Autofs работает от пользователя root, по этому нужно для root-a сделать ssh-ключ на GW и положить его на ноду:
все действия делаем на GW

# Генерируем ключ
ssh-keygen # Создаем на ноде в домашней директории пользователя www-data (apache) папку .ssh и копируем туда публичный ключ root с GW
ssh -i /home/vm100104/.ssh/id_rsa root@10.100.100.104 &#8220;mkdir /var/www/.ssh&#8221;
scp -i /home/vm100104/.ssh/id_rsa /root/.ssh/id_rsa.pub root@10.100.100.104:/var/www/.ssh/authorized_keys
ssh -i /home/vm100104/.ssh/id_rsa root@10.100.100.104 &#8220;chown -R www-data:www-data /var/www/.ssh&#8221;
ssh -i /home/vm100104/.ssh/id_rsa root@10.100.100.104 &#8220;chmod 600 /var/www/.ssh/authorized_keys&#8221; # Настраиваем на ноде sshd таким образом, что бы для пользователя www-data (apache) автоматически запускался sftp
ssh -i /home/vm100104/.ssh/id_rsa root@10.100.100.104 &#8220;echo 'Match user www-data' >> /etc/ssh/sshd_config&#8221;
ssh -i /home/vm100104/.ssh/id_rsa root@10.100.100.104 &#8220;echo 'ForceCommand internal-sftp' >> /etc/ssh/sshd_config&#8221;
ssh -i /home/vm100104/.ssh/id_rsa root@10.100.100.104 &#8220;service ssh restart&#8221;

Устанавливаем и настраиваем autofs

aptitude -y install sshfs autofs
mkdir /etc/auto.master.d # Настраиваем autofs в папке /00_sites (это доступ к файлам виртуалок для разработчиков)
mkdir /00_sites
echo &#8220;/00_sites /etc/auto.master.d/00_sites.ssh uid=`id -u pmadmin`,gid=`id -g pmadmin`,timeout=5,ghost&#8221; > /etc/auto.master.d/00_sites.autofs
echo 'vm100104 -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,reconnect,StrictHostKeyChecking=no,Compression=no :sshfs#www-data@10.100.100.104:/var/www/html' >> /etc/auto.master.d/00_sites.ssh
service autofs restart # autofs в папку /home/vm100104/site (это доступ к файлам сайта для клиента)
mkdir /home/vm100104/site
echo &#8220;/home/vm100104/site /etc/auto.master.d/vm100104.ssh uid=`id -u vm100104`,gid=`id -g vm100104`,timeout=5,ghost&#8221; > /etc/auto.master.d/vm100104.autofs
echo 'vm100104 -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,reconnect,StrictHostKeyChecking=no,Compression=no :sshfs#www-data@10.100.100.104:/var/www/html' >> /etc/auto.master.d/vm100104.ssh
service autofs restart

# ls /00_sites/
vm100104 root@GW:

# ls /00_sites/vm100104
latest.tar.gz wp-activate.php wp-config.php wp-includes wp-mail.php xmlrpc.php
license.txt wp-admin wp-config-sample.php wp-links-opml.php wp-settings.php
phpinfo.php wp-blog-header.php wp-content wp-load.php wp-signup.php
index.php readme.html wp-comments-post.php wp-cron.php wp-login.php wp-trackback.php root@GW:

# ls /home/vm100104/site/
vm100104 root@GW:

# ls /home/vm100104/site/vm100104
latest.tar.gz wp-activate.php wp-config.php wp-includes wp-mail.php xmlrpc.php
license.txt wp-admin wp-config-sample.php wp-links-opml.php wp-settings.php
phpinfo.php wp-blog-header.php wp-content wp-load.php wp-signup.php
index.php readme.html wp-comments-post.php wp-cron.php wp-login.php wp-trackback.php

Настраиваем sftpd на GW

На GW уже запущен sshd на стандартном порту через него осуществляется доступ пользователям по ssh к виртуальным машинам.

Нам нужно сделать так, что бы при подключении по sftp происходил chroot в папку

/sites (в которой через autofs смонтирована файловая система с виртуальной машины пользователя).

Для этого придется поднять отдельный sshd на другом порту и с отдельным конфигом. Назовем этот сервис sshfsd и выделим для него порт 2222.

# Создаем конфиг для sftpd
cp /etc/ssh/sshd_config /etc/ssh/sftpd_config
sed -i 's/Port 22/Port 2222/' /etc/ssh/sftpd_config # Добавляем в конфиг правила для выполнения chroot для всех пользователей
echo &#8220;ChrootDirectory %h/site&#8221; >> /etc/ssh/sftpd_config
echo &#8220;ForceCommand internal-sftp&#8221; >> /etc/ssh/sftpd_config # Добавляем индивидуальное правило для выполнения chroot для пользователя pmadmin
echo &#8220;&#8221; >> /etc/ssh/sftpd_config
echo &#8220;Match user pmadmin&#8221; >> /etc/ssh/sftpd_config
echo &#8220;ChrootDirectory /00_sites&#8221; >> /etc/ssh/sftpd_config
echo &#8220;ForceCommand internal-sftp&#8221; >> /etc/ssh/sftpd_config # Добавляем sftpd в upstart
cp /etc/init/ssh.conf /etc/init/sftpd.conf
sed -i 's#OpenSSH server#OpenSFTP server#;s#exec /usr/sbin/sshd -D#exec /usr/sbin/sshd -D -f /etc/ssh/sftpd_config#' /etc/init/sftpd.conf # Устанавливаем права на домашнюю директорию для того, что бы chroot сработал
chown root:root /home/vm100104; chmod 755 /home/vm100104 service sftpd start

$ sftp -P 2222 vm100104@192.168.77.74
Connected to 192.168.77.74.
sftp> ls
vm100104 vps@vps:

$ sftp -P 2222 pmadmin@192.168.77.74
Connected to 192.168.77.74.
sftp> ls
mv100104

Настраиваем доступ по ftp

aptitude -y install vsftpd # Включаем chroot для всех пользователей
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd.conf # Исправление ошибки &#8220;425 Security BAD IP connecting problem&#8221; при подключении через nat
echo 'pasv_promiscuous=YES' >> /etc/vsftpd.

conf # Подключаем индивидуальный конфиг пользователя pmadmin, в котором указан /00_sites в качестве домашнего каталога
echo 'user_config_dir=/etc/vsftpd/users/' >> /etc/vsftpd.

conf
mkdir /etc/vsftpd /etc/vsftpd/users
echo 'local_root=/00_sites' >> /etc/vsftpd/users/pmadmin service vsftpd restart

$ lftp vm100104@192.168.77.74
Пароль: lftp vm100104@192.168.77.74:

> ls drwxr-xr-x 3 0 0 0 Dec 24 08:40 site vps@vps:

$ lftp pmadmin@192.168.77.74
Пароль: lftp pmadmin@192.168.77.74:

> ls dr-xr-xr-x 2 0 0 0 Dec 24 08:40 100104
dr-xr-xr-x 2 0 0 0 Dec 24 08:40 100105

Доступ по smb (только для staging-сервера, который находится в интранет)

aptitude -y install samba
echo &#8220;[phpstuff]&#8221; >> /etc/samba/smb.conf
echo &#8220;path = /00_sites&#8221; >> /etc/samba/smb.conf
echo &#8220;guest ok = yes&#8221; >> /etc/samba/smb.conf
echo &#8220;browseable = yes&#8221; >> /etc/samba/smb.conf
echo &#8220;public = yes&#8221; >> /etc/samba/smb.

conf
echo &#8220;writeable = yes&#8221; >> /etc/samba/smb.conf
echo &#8220;force user = pmadmin&#8221; >> /etc/samba/smb.conf
echo &#8220;force group = pmadmin&#8221; >> /etc/samba/smb.conf
echo &#8220;create mask = 0664&#8221; >> /etc/samba/smb.conf
echo &#8220;directory mask = 0775&#8221; >> /etc/samba/smb.

conf
service smbd restart

Атс в контейнере. asterisk 14 + nginx + freepbx 14 + srtp на centos 7 в lxc-контейнере proxmox ve 4

Подключение к lxc контейнеру centos 7 по ssh в proxmox

В контейнеры, в наше время, можно установить множество интересных систем

но под катом вы сможете найти лишь относительно стандартную инструкцию по установке asterisk+freepbx. Скуку слегка развеет то, что версии всего ПО «последние стабильные», есть шифрование, вместо apache — nginx, а вся установка под недавно «повзрослевший» lxc.

На выходе получится достаточно мобильная, компактная и современная IP-АТС, потребляющая в покое 200-300 Мб ОЗУ1. LXC/Proxmox Для начала нужно создать контейнер с Centos. Если у вас, как и у меня, proxmox ve — удобнее всего это будет сделать через web-интерфейс. Настройки «оборудования» возьмем минимальные.

Потом их можно будет увеличить под нужды: cores: 1 memory: 1024 rootfs: 8G swap: 256, а в качестве шаблона ОС используем centos-7-default_20171212_amd64.tar.xz. Если у вас такой шаблон недоступен для загрузки — выполните на хосте pveam update. После установки и запуска контейнера, я обычно сразу ставлю ssh, т.к.

работать со встроенной web-консолью proxmox не очень удобно.

yum -y install openssh-server
systemctl enable sshd
systemctl start sshd

2. LEMP Репозитории и базовые утилиты

yum -y install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum –y update

Выбор webtatic обоснован дальнейшей установкой php56w, с которым гарантированно хорошо работает freepbx. Но можно попробовать и Remi. Ставим mariadb, nginx и полезности. Пакет net-tools тоже пригодится, т.к. в centos7 по умолчанию нет ifconfig, с которым работает freepbx.

yum -y install wget tar nano bzip2 unzip curl net-tools make gcc gcc-c++ openssl openssl-devel mariadb-server mariadb-devel nginx tftp-server crontabs cronie cronie-anacron sendmail sendmail-cf

Freepbx пока не поддерживает php7, поэтому ставим рекомендованный 5.6.

yum –y install php56w php56w-pdo php56w-mysql php56w-mbstring php56w-pear php56w-process php56w-xml php56w-opcache php56w-ldap php56w-intl php56w-soap php56-fpm php56w-gd

Запускаем mariadb и nginx, отключаем apache, правим php.ini. Иначе вы не сможете обновлять модули freepbx через web-интерфейс.

systemctl enable mariadb.service
systemctl start mariadb
sed -i 's/(^upload_max_filesize = ).*/120M/' /etc/php.ini
systemctl enable nginx
systemctl start nginx
systemctl disable httpd

После можно запустить mysql_secure_installation но без установки пароля root – этого требует установщик freepbx.

Теперь, когда у нас есть рабочая «заготовка» LEMP-сервера, можно сделать бэкап системы, чтобы потом можно было откатиться назад или использовать бэкап для приготовления другого сервера. Это займет меньше минуты, а полный архив получится около 350МБ. 3. Asterisk.

SRTP В принципе, у нас все готово к установке asterisk. SIP и PJSIP мы поставим при сборке через опцию with-pjproject-bundled. Не хватает лишь srtp для включения поддержки шифрования медиа. Тут небольшой затык, т.к.

в документации к asterisk 14 сказано, что для работы srtp нужна libsrtp не ниже 1.5.4, теоретически поддерживается libsrtp 2.х, но практически нужно использовать именно 1.5.4 для достижения стабильного результата. То есть, версия 1.4.4 из репозиториев не пойдет, и нам нужно ее собрать самим.

cd /usr/src/
wget https://github.com/cisco/libsrtp/archive/v1.5.4.tar.gz
tar xvzf v1.5.4.tar.gz
cd libsrtp-1.5.4
./configure libdir=/usr/lib64 enable-openssl
make shared_library
make install

На всякий случай, можно проверить наличие библиотеки в точке назначения

ls /usr/lib64 | grep srtp

и через ldconfig

ldconfig -p | grep srtp

Хинт! Если не указывать make shared_library, то по умолчанию make собирает архивную библиотеку libsrtp.a, и требует промежуточного теста make runtest. Если вам нужна именно libsrtp.a, то заранее скачайте словарь для этого теста.

wget -O /usr/share/dict/words https://github.com/cisco/libsrtp/blob/master/test/words.txt

Скачиваем и разворачиваем Asterisk:

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
tar xvfz asterisk-14-current.tar.gz
cd asterisk-14*/

На этом этапе можно, с помощью любезно предоставленного разработчиками, скрипта проверить наличие необходимых пакетов и установить их. Так как мы уже установили часть пакетов, рекомендую выполнять такую проверку в режиме test.

Из вывода скрипта уберем mysql-devel, srtp-devel, а gmime22-devel заменим на gmime-devel. На данный момент пакеты lame и jansson в репозиториях свежие, поэтому мы их тоже поставим из репозиториев:

yum –y install patch ncurses-devel uuid-devel libuuid-devel jansson-devel lame lame-libs libxml2-devel sqlite-devel automake unixODBC-devel libcurl-devel libogg-devel libvorbis-devel speex-devel spandsp-devel freetds-devel net-snmp-devel iksemel-devel corosynclib-devel newt-devel popt-devel libtool-ltdl-devel lua-devel libsqlite3x-devel radiusclient-ng-devel portaudio-devel neon-devel libical-devel openldap-devel sqlite2-devel bluez-libs-devel jack-audio-connection-kit-devel gsm-devel libedit-devel pjproject-devel gmime-devel subversion git libxslt-devel python-devel

Далее, загружаем источники звуковых файлов и запускаем конфигурацию asterisk

./contrib/scripts/get_mp3_source.sh
./configure libdir=/usr/lib64 with-pjproject-bundled with-crypto with-ssl=ssl with-srtp

Если все прошло без ошибок, то запускаем меню конфигурации

Включаем поддержку mp3, выбираем нужные пакеты звуковых файлов в Core Sound Packages, Music On Hold File Packages и Extras Sound Packages. Так же, на всякий случай, проверяем наличие пункта res_srtp в Resource Modules. Готово. Далее:

make &#038;&#038; make install &#038;&#038; make config &#038;&#038; ldconfig

Теперь можно попробовать запустить asterisk и проверить — подхватил ли он модуль srtp:

systemctl start asterisk
systemctl status asterisk
rasterisk Asterisk 14.7.5, Copyright (C) 1999 2016, Digium, Inc. and others.
Created by Mark Spencer Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
===============================================================
Connected to Asterisk 14.7.5 currently running on pbx4 (pid = 28020)
pbx4*CLI>

Asterisk работает, теперь смотрим загружен ли модуль srtp. В консоли asterisk выполняем:


Источник: remkasam.ru