mirror of
https://github.com/jambonz/jambonz-infrastructure.git
synced 2026-01-25 02:08:27 +00:00
initial changes to build everything on redhat
This commit is contained in:
@@ -95,9 +95,9 @@ Conditions:
|
||||
Mappings:
|
||||
AWSRegion2AMI:
|
||||
us-east-1:
|
||||
Ami: ami-0525a66f4301a6e6d
|
||||
Ami: ami-0c9308fe579edc67b
|
||||
us-east-2:
|
||||
Ami: ami-0e45caebe3e25580c
|
||||
Ami: ami-09a790787540f5772
|
||||
|
||||
Resources:
|
||||
IamCloudwatchRole:
|
||||
@@ -172,6 +172,18 @@ Resources:
|
||||
- |
|
||||
#!/bin/bash -xe
|
||||
|
||||
echo install rtpengine kernel module and iptables rule
|
||||
if lsmod | grep -q xt_RTPENGINE; then
|
||||
echo "xt_RTPENGINE module is already loaded."
|
||||
else
|
||||
echo "loading xt_RTPENGINE module."
|
||||
modprobe xt_RTPENGINE
|
||||
echo 'add 42' > /proc/rtpengine/control
|
||||
iptables -I INPUT -p udp --dport 40000:60000 -j RTPENGINE --id 42
|
||||
fi
|
||||
echo "rtpengine module and iptables rule installed. Restarting rtpengine service."
|
||||
systemctl restart rtpengine
|
||||
|
||||
# Detecting the Linux distribution
|
||||
if grep -q 'ID="rhel"' /etc/os-release; then
|
||||
USER=ec2-user
|
||||
@@ -185,8 +197,6 @@ Resources:
|
||||
echo disabling firewalld
|
||||
sudo systemctl stop firewalld
|
||||
sudo systemctl disable firewalld
|
||||
|
||||
sudo systemctl restart rtpengine
|
||||
else
|
||||
USER=admin
|
||||
HOME=/home/admin
|
||||
|
||||
@@ -1,25 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
DISTRO=$1
|
||||
|
||||
FREESWITCH_VERSION=v1.10.10
|
||||
SPAN_DSP_VERSION=0d2e6ac
|
||||
GRPC_VERSION=v1.57.0
|
||||
GOOGLE_API_VERSION=29374574304f3356e64423acc9ad059fe43f09b5
|
||||
#AWS_SDK_VERSION=1.11.143 # newer but buggy with s2n_init crashes and weird slowdown on voice playout in FS
|
||||
AWS_SDK_VERSION=1.8.129
|
||||
LWS_VERSION=v4.3.2
|
||||
MODULES_VERSION=v0.8.11
|
||||
|
||||
if [[ "$DISTRO" == rhel* ]]; then
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Switching to root user..."
|
||||
bash "$0" --as-root
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
# Your script continues here, as root
|
||||
echo "freeswitch version to install is ${FREESWITCH_VERSION}"
|
||||
echo "drachtio modules version to install is ${MODULES_VERSION}"
|
||||
echo "GRPC version to install is ${GRPC_VERSION}"
|
||||
@@ -27,6 +15,17 @@ echo "GOOGLE_API_VERSION version to install is ${GOOGLE_API_VERSION}"
|
||||
echo "AWS_SDK_VERSION version to install is ${AWS_SDK_VERSION}"
|
||||
echo "LWS_VERSION version to install is ${LWS_VERSION}"
|
||||
echo "DISTRO is ${DISTRO}"
|
||||
echo "ARCH is ${ARCH}"
|
||||
|
||||
if [[ "$DISTRO" == rhel* ]]; then
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Switching to root user..."
|
||||
sudo ARCH="$ARCH" MEDIA_SERVER_NAME="$MEDIA_SERVER_NAME" PREFERRED_CODEC_LIST="$PREFERRED_CODEC_LIST" DISTRO="$DISTRO" bash "$0" --as-root
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
# Your script continues here, as root
|
||||
|
||||
export PATH=/usr/local/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:$LD_LIBRARY_PATH
|
||||
@@ -48,6 +47,7 @@ if [ "$ARCH" == "arm64" ]; then
|
||||
echo done
|
||||
fi
|
||||
if [ "$ARCH" == "amd64" ]; then
|
||||
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
|
||||
echo installing Microsoft x64 libs...
|
||||
sudo cp /usr/local/lib/MicrosoftSpeechSDK/x64/libMicrosoft.*.so /usr/local/lib/
|
||||
echo done
|
||||
@@ -136,6 +136,7 @@ autoreconf -i && ./configure && make -j 4 && sudo make install
|
||||
|
||||
# build spandsp
|
||||
echo building spandsp
|
||||
mv /usr/lib64/pkgconfig/spandsp.pc /usr/lib64/pkgconfig/spandsp.pc.bak # move old spandsp.pc out of the way
|
||||
cd /usr/local/src/freeswitch/libs/spandsp
|
||||
./bootstrap.sh && ./configure && make -j 4 && sudo make install
|
||||
|
||||
@@ -214,7 +215,7 @@ LANGUAGE=cpp make
|
||||
echo "building freeswitch"
|
||||
cd /usr/local/src/freeswitch
|
||||
./bootstrap.sh -j
|
||||
./configure --enable-tcmalloc=yes --with-lws=yes --with-extra=yes --with-aws=yes
|
||||
./configure --enable-tcmalloc=yes --with-lws=yes --with-extra=yes
|
||||
make -j 8
|
||||
sudo make install
|
||||
sudo make cd-sounds-install cd-moh-install
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ami_description": "jambonz feature server",
|
||||
"instance_type": "c6in.2xlarge",
|
||||
"drachtio_version": "v0.8.24-rc1",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_arch": "amd64",
|
||||
"ami_base_image_owner": "309956199498",
|
||||
"install_telegraf": "yes",
|
||||
@@ -17,7 +17,7 @@
|
||||
"distro": "rhel-8",
|
||||
"redhat_username": "your-redhat_username-here",
|
||||
"redhat_password": "your-redhat_password-here",
|
||||
"leave_source": "no"
|
||||
"leave_source": "yes"
|
||||
},
|
||||
"builders": [{
|
||||
"type": "amazon-ebs",
|
||||
@@ -61,29 +61,23 @@
|
||||
"export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH",
|
||||
"sudo setenforce 0",
|
||||
"sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config",
|
||||
"echo registering",
|
||||
"sudo subscription-manager register --username={{user `redhat_username`}} --password={{user `redhat_password`}}",
|
||||
"sudo dnf upgrade -y",
|
||||
"sudo sed -i 's/manage_repos = 0/manage_repos = 1/' /etc/rhsm/rhsm.conf",
|
||||
"cat /etc/rhsm/rhsm.conf",
|
||||
"echo installing codeready repos",
|
||||
"sudo subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms",
|
||||
"echo installing epel repo",
|
||||
"sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm",
|
||||
"sudo dnf upgrade -y",
|
||||
"echo running /usr/bin/crb",
|
||||
"sudo /usr/bin/crb enable",
|
||||
"echo installing rpmfusion repo",
|
||||
"sudo dnf install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm",
|
||||
"echo installing Development tools",
|
||||
"sudo dnf groupinstall -y 'RPM Development Tools'",
|
||||
"sudo dnf groupinstall -y 'Development Tools'",
|
||||
"echo installing needed packages",
|
||||
"sudo dnf install -y iptables-devel htop lsof redis pandoc wget yasm cmake ffmpeg ffmpeg-devel perl-ExtUtils-Embed perl-IPC-Cmd pcre-devel iptables-devel \\",
|
||||
"google-perftools-devel libcurl-devel jq telnet libevent-devel xmlrpc-c-devel gperf libpcap-devel libmpg123-devel libshout-devel systemd-devel \\",
|
||||
"glib2-devel json-glib-devel hiredis-devel mariadb-devel dnsutils speex speex-devel speexdsp-devel re2-devel libedit-devel opus-devel opusfile-devel \\",
|
||||
"glib2-devel json-glib-devel hiredis-devel libtiff-devel libevent-devel xmlrpc-c-devel perl-IPC-Cmd mariadb-devel snapd \\",
|
||||
"libjpeg-devel libsndfile-devel lua-devel sqlite-devel libuuid-devel lame-devel libyuv-devel protobuf-compiler",
|
||||
"sudo dnf install -y iptables-devel htop pandoc wget cmake ffmpeg ffmpeg-devel fail2ban \\",
|
||||
"perl-IPC-Cmd pcre-devel google-perftools-devel libcurl-devel curl jq telnet \\",
|
||||
"libevent-devel xmlrpc-c-devel gperf libpcap-devel glib2-devel json-glib-devel \\",
|
||||
"hiredis-devel spandsp-devel mariadb-devel dnsutils speex libedit-devel \\",
|
||||
"opus-devel lsof redis yasm perl-ExtUtils-Embed libmpg123-devel libshout-devel \\",
|
||||
"systemd-devel speex-devel speexdsp-devel re2-devel opusfile-devel libtiff-devel \\",
|
||||
"snapd libjpeg-devel libsndfile-devel lua-devel sqlite-devel libuuid-devel \\",
|
||||
"lame-devel libyuv-devel protobuf-compiler tcpdump kernel-devel-4.18.0-513.9.1.el8_9",
|
||||
"sudo dnf debuginfo-install -y binutils",
|
||||
"sudo dnf debuginfo-install -y binutils",
|
||||
"sudo chmod a+w /usr/local/src",
|
||||
"ssh-keyscan github.com >> ~/.ssh/known_hosts",
|
||||
@@ -110,9 +104,9 @@
|
||||
"environment_vars": [
|
||||
"ARCH={{user `ami_base_image_arch`}}",
|
||||
"MEDIA_SERVER_NAME={{user `mediaserver_name`}}",
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}"
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}",
|
||||
"DISTRO={{user `distro`}}"
|
||||
],
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_freeswitch.sh"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ami_description": "jambonz feature server",
|
||||
"instance_type": "c6in.2xlarge",
|
||||
"drachtio_version": "v0.8.24-rc1",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_arch": "amd64",
|
||||
"ami_base_image_owner": "309956199498",
|
||||
"install_telegraf": "yes",
|
||||
@@ -110,9 +110,9 @@
|
||||
"environment_vars": [
|
||||
"ARCH={{user `ami_base_image_arch`}}",
|
||||
"MEDIA_SERVER_NAME={{user `mediaserver_name`}}",
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}"
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}",
|
||||
"DISTRO={{user `distro`}}"
|
||||
],
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_freeswitch.sh"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ami_description": "jambonz feature server",
|
||||
"instance_type": "c6in.xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_arch": "amd64",
|
||||
"ami_base_image_owner": "136693071363",
|
||||
"install_telegraf": "yes",
|
||||
@@ -94,7 +94,8 @@
|
||||
"environment_vars": [
|
||||
"ARCH={{user `ami_base_image_arch`}}",
|
||||
"MEDIA_SERVER_NAME={{user `mediaserver_name`}}",
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}"
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}",
|
||||
"DISTRO={{user `distro`}}"
|
||||
],
|
||||
"script": "scripts/install_freeswitch.sh"
|
||||
},
|
||||
|
||||
@@ -1,25 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
DISTRO=$1
|
||||
|
||||
FREESWITCH_VERSION=v1.10.10
|
||||
SPAN_DSP_VERSION=0d2e6ac
|
||||
GRPC_VERSION=v1.57.0
|
||||
GOOGLE_API_VERSION=29374574304f3356e64423acc9ad059fe43f09b5
|
||||
#AWS_SDK_VERSION=1.11.143 # newer but buggy with s2n_init crashes and weird slowdown on voice playout in FS
|
||||
AWS_SDK_VERSION=1.8.129
|
||||
LWS_VERSION=v4.3.2
|
||||
MODULES_VERSION=v0.8.11
|
||||
|
||||
if [[ "$DISTRO" == rhel* ]]; then
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Switching to root user..."
|
||||
bash "$0" --as-root
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
# Your script continues here, as root
|
||||
echo "freeswitch version to install is ${FREESWITCH_VERSION}"
|
||||
echo "drachtio modules version to install is ${MODULES_VERSION}"
|
||||
echo "GRPC version to install is ${GRPC_VERSION}"
|
||||
@@ -27,6 +15,17 @@ echo "GOOGLE_API_VERSION version to install is ${GOOGLE_API_VERSION}"
|
||||
echo "AWS_SDK_VERSION version to install is ${AWS_SDK_VERSION}"
|
||||
echo "LWS_VERSION version to install is ${LWS_VERSION}"
|
||||
echo "DISTRO is ${DISTRO}"
|
||||
echo "ARCH is ${ARCH}"
|
||||
|
||||
if [[ "$DISTRO" == rhel* ]]; then
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Switching to root user..."
|
||||
sudo ARCH="$ARCH" MEDIA_SERVER_NAME="$MEDIA_SERVER_NAME" PREFERRED_CODEC_LIST="$PREFERRED_CODEC_LIST" DISTRO="$DISTRO" bash "$0" --as-root
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
# Your script continues here, as root
|
||||
|
||||
export PATH=/usr/local/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:$LD_LIBRARY_PATH
|
||||
@@ -48,6 +47,7 @@ if [ "$ARCH" == "arm64" ]; then
|
||||
echo done
|
||||
fi
|
||||
if [ "$ARCH" == "amd64" ]; then
|
||||
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
|
||||
echo installing Microsoft x64 libs...
|
||||
sudo cp /usr/local/lib/MicrosoftSpeechSDK/x64/libMicrosoft.*.so /usr/local/lib/
|
||||
echo done
|
||||
@@ -136,6 +136,7 @@ autoreconf -i && ./configure && make -j 4 && sudo make install
|
||||
|
||||
# build spandsp
|
||||
echo building spandsp
|
||||
mv /usr/lib64/pkgconfig/spandsp.pc /usr/lib64/pkgconfig/spandsp.pc.bak # move old spandsp.pc out of the way
|
||||
cd /usr/local/src/freeswitch/libs/spandsp
|
||||
./bootstrap.sh && ./configure && make -j 4 && sudo make install
|
||||
|
||||
@@ -214,7 +215,7 @@ LANGUAGE=cpp make
|
||||
echo "building freeswitch"
|
||||
cd /usr/local/src/freeswitch
|
||||
./bootstrap.sh -j
|
||||
./configure --enable-tcmalloc=yes --with-lws=yes --with-extra=yes --with-aws=yes
|
||||
./configure --enable-tcmalloc=yes --with-lws=yes --with-extra=yes
|
||||
make -j 8
|
||||
sudo make install
|
||||
sudo make cd-sounds-install cd-moh-install
|
||||
|
||||
@@ -32,6 +32,7 @@ cd /usr/local/src
|
||||
git clone https://github.com/warmcat/libwebsockets.git -b v4.3.2
|
||||
cd /usr/local/src/libwebsockets
|
||||
mkdir -p build && cd build && cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo && make -j 8 && sudo make install
|
||||
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
||||
|
||||
cd /usr/local/src
|
||||
git clone https://github.com/sipwise/rtpengine.git -b ${VERSION}
|
||||
@@ -46,27 +47,28 @@ if [[ "$DISTRO" == rhel* ]] && [[ "$RHEL_RELEASE" == "9" ]]; then
|
||||
systemctl enable rtpengine
|
||||
systemctl start rtpengine
|
||||
else
|
||||
|
||||
if [[ "$DISTRO" == rhel* ]] && [[ "$RHEL_RELEASE" == "8" ]]; then
|
||||
kernel_version="4.18.0-513.9.1.el8_9.x86_64"
|
||||
else
|
||||
kernel_version=$(uname -r)
|
||||
fi
|
||||
|
||||
echo "build rtpengine with kernel version ${kernel_version}"
|
||||
echo make with_transcoding=yes with_iptables_option=yes with-kernel
|
||||
make with_transcoding=yes with_iptables_option=yes with-kernel
|
||||
make KSRC=/lib/modules/${kernel_version}/build with_transcoding=yes with_iptables_option=yes with-kernel
|
||||
|
||||
# copy iptables extension into place
|
||||
echo "copying iptables extension into ${pkg-config xtables --variable=xtlibdir}"
|
||||
cp ./iptables-extension/libxt_RTPENGINE.so `pkg-config xtables --variable=xtlibdir`
|
||||
echo "creating directory /lib/modules/$(uname -r)/updates/"
|
||||
mkdir -p /lib/modules/`uname -r`/updates/
|
||||
echo "copying kernel module into /lib/modules/$(uname -r)/updates"
|
||||
cp ./kernel-module/xt_RTPENGINE.ko /lib/modules/`uname -r`/updates
|
||||
depmod -a
|
||||
modprobe xt_RTPENGINE
|
||||
echo "copying kernel module into /lib/modules/${kernel_version}/updates"
|
||||
cp ./kernel-module/xt_RTPENGINE.ko /lib/modules/${kernel_version}/updates
|
||||
depmod -a ${kernel_version}
|
||||
echo "xt_RTPENGINE" >> /etc/modules-load.d/rtpengine.conf
|
||||
cat << EOF >> /etc/modules
|
||||
xt_RTPENGINE
|
||||
EOF
|
||||
|
||||
echo "creating file 42 in /proc/rtpengine/control"
|
||||
echo 'add 42' > /proc/rtpengine/control
|
||||
echo "installing iptables rule"
|
||||
iptables -I INPUT -p udp --dport 40000:60000 -j RTPENGINE --id 42
|
||||
|
||||
cp /usr/local/src/rtpengine/daemon/rtpengine /usr/local/bin
|
||||
cp /usr/local/src/rtpengine/recording-daemon/rtpengine-recording /usr/local/bin/
|
||||
|
||||
@@ -76,8 +78,8 @@ EOF
|
||||
sudo mv /tmp/rtpengine.service /etc/systemd/system
|
||||
fi
|
||||
sudo chmod 644 /etc/systemd/system/rtpengine.service
|
||||
sudo systemctl enable rtpengine
|
||||
sudo systemctl start rtpengine
|
||||
#sudo systemctl enable rtpengine
|
||||
#sudo systemctl start rtpengine
|
||||
fi
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ami_description": "jambonz all-in-one AMI",
|
||||
"instance_type": "c6in.2xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"jambonz_user": "admin",
|
||||
"jambonz_password": "JambonzR0ck$",
|
||||
"ami_base_image_owner": "309956199498",
|
||||
@@ -27,7 +27,7 @@
|
||||
"distro": "rhel-8",
|
||||
"redhat_username": "your-redhat_username-here",
|
||||
"redhat_password": "your-redhat_password-here",
|
||||
"leave_source": "no"
|
||||
"leave_source": "yes"
|
||||
},
|
||||
"builders": [{
|
||||
"type": "amazon-ebs",
|
||||
@@ -35,7 +35,7 @@
|
||||
"source_ami_filter": {
|
||||
"filters": {
|
||||
"virtualization-type": "hvm",
|
||||
"name": "RHEL-8.8*",
|
||||
"name": "RHEL-8.8.0*",
|
||||
"root-device-type": "ebs",
|
||||
"architecture": "x86_64"
|
||||
},
|
||||
@@ -86,7 +86,7 @@
|
||||
"opus-devel lsof redis yasm perl-ExtUtils-Embed libmpg123-devel libshout-devel \\",
|
||||
"systemd-devel speex-devel speexdsp-devel re2-devel opusfile-devel libtiff-devel \\",
|
||||
"snapd libjpeg-devel libsndfile-devel lua-devel sqlite-devel libuuid-devel \\",
|
||||
"lame-devel libyuv-devel protobuf-compiler tcpdump kernel-devel-$(uname -r)",
|
||||
"lame-devel libyuv-devel protobuf-compiler tcpdump kernel-devel-4.18.0-513.9.1.el8_9",
|
||||
"sudo dnf debuginfo-install -y binutils",
|
||||
"sudo chmod a+w /usr/local/src",
|
||||
"mkdir ~/apps",
|
||||
@@ -109,6 +109,16 @@
|
||||
"source": "files/",
|
||||
"destination": "/tmp"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"environment_vars": [
|
||||
"ARCH=amd64",
|
||||
"MEDIA_SERVER_NAME={{user `mediaserver_name`}}",
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}",
|
||||
"DISTRO={{user `distro`}}"
|
||||
],
|
||||
"script": "scripts/install_freeswitch.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
@@ -189,16 +199,6 @@
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_nodejs.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"environment_vars": [
|
||||
"ARCH=amd64",
|
||||
"MEDIA_SERVER_NAME={{user `mediaserver_name`}}",
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}"
|
||||
],
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_freeswitch.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `jambonz_version`}} {{user `jambonz_user`}} {{user `jambonz_password`}}",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ami_description": "jambonz all-in-one AMI",
|
||||
"instance_type": "c6in.2xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"jambonz_user": "admin",
|
||||
"jambonz_password": "JambonzR0ck$",
|
||||
"ami_base_image_owner": "309956199498",
|
||||
@@ -195,7 +195,8 @@
|
||||
"environment_vars": [
|
||||
"ARCH=amd64",
|
||||
"MEDIA_SERVER_NAME={{user `mediaserver_name`}}",
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}"
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}",
|
||||
"DISTRO={{user `distro`}}"
|
||||
],
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_freeswitch.sh"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"ami_description": "jambonz-mini (all-in-one server)",
|
||||
"instance_type": "c2-standard-4",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"jambonz_user": "admin",
|
||||
"jambonz_password": "JambonzR0ck$",
|
||||
"install_telegraf": "yes",
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"proxmox_ip_private": "{{user `proxmox_ip_private`}}",
|
||||
"proxmox_gateway": "{{user `proxmox_gateway`}}",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"jambonz_user": "admin",
|
||||
"jambonz_password": "JambonzR0ck$",
|
||||
"install_telegraf": "yes",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ssh_username": "admin",
|
||||
"ami_description": "jambonz monitoring server",
|
||||
"instance_type": "t2.xlarge",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"homer_user": "homer_user",
|
||||
"homer_password": "XcapJTqy11LnsYRtxXGPTYQkAnI",
|
||||
"install_influxdb": "yes",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ssh_username": "admin",
|
||||
"ami_description": "jambonz SBC RTP server",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_arch": "amd64",
|
||||
"ami_base_image_owner": "136693071363",
|
||||
"instance_type": "t3.xlarge",
|
||||
|
||||
@@ -32,6 +32,7 @@ cd /usr/local/src
|
||||
git clone https://github.com/warmcat/libwebsockets.git -b v4.3.2
|
||||
cd /usr/local/src/libwebsockets
|
||||
mkdir -p build && cd build && cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo && make -j 8 && sudo make install
|
||||
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
||||
|
||||
cd /usr/local/src
|
||||
git clone https://github.com/sipwise/rtpengine.git -b ${VERSION}
|
||||
@@ -46,16 +47,29 @@ if [[ "$DISTRO" == rhel* ]] && [[ "$RHEL_RELEASE" == "9" ]]; then
|
||||
systemctl enable rtpengine
|
||||
systemctl start rtpengine
|
||||
else
|
||||
|
||||
if [[ "$DISTRO" == rhel* ]] && [[ "$RHEL_RELEASE" == "8" ]]; then
|
||||
kernel_version="4.18.0-513.9.1.el8_9.x86_64"
|
||||
else
|
||||
kernel_version=$(uname -r)
|
||||
fi
|
||||
|
||||
echo "building rtpengine with kernel version ${kernel_version}"
|
||||
echo make with_transcoding=yes with_iptables_option=yes with-kernel
|
||||
make with_transcoding=yes with_iptables_option=yes with-kernel
|
||||
make KSRC=/lib/modules/${kernel_version}/build with_transcoding=yes with_iptables_option=yes with-kernel
|
||||
|
||||
# copy iptables extension into place
|
||||
echo "copying iptables extension into ${pkg-config xtables --variable=xtlibdir}"
|
||||
cp ./iptables-extension/libxt_RTPENGINE.so `pkg-config xtables --variable=xtlibdir`
|
||||
echo "creating directory /lib/modules/$(uname -r)/updates/"
|
||||
mkdir -p /lib/modules/`uname -r`/updates/
|
||||
echo "copying kernel module into /lib/modules/$(uname -r)/updates"
|
||||
cp ./kernel-module/xt_RTPENGINE.ko /lib/modules/`uname -r`/updates
|
||||
echo "copying kernel module into /lib/modules/${kernel_version}/updates"
|
||||
cp ./kernel-module/xt_RTPENGINE.ko /lib/modules/${kernel_version}/updates
|
||||
depmod -a -b /lib/modules/${kernel_version}
|
||||
modprobe xt_RTPENGINE
|
||||
cat << EOF >> /etc/modules-load.d/rtpengine.conf
|
||||
echo "creating directory /lib/modules/${kernel_version}/updates/"
|
||||
mkdir -p /lib/modules/${kernel_version}/updates/
|
||||
echo "copying kernel module into /lib/modules/${kernel_version}/updates"
|
||||
cp ./kernel-module/xt_RTPENGINE.ko /lib/modules/${kernel_version}/updates
|
||||
depmod -a
|
||||
modprobe xt_RTPENGINE
|
||||
cat << EOF >> /etc/modules
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"ami_description": "jambonz SBC SIP+RTP",
|
||||
"instance_type": "c6in.xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_arch": "amd64",
|
||||
"ami_base_image_owner": "309956199498",
|
||||
"rtp_engine_version": "mr11.5.1.1",
|
||||
@@ -19,7 +19,7 @@
|
||||
"distro": "rhel-8",
|
||||
"redhat_username": "your-redhat_username-here",
|
||||
"redhat_password": "your-redhat_password-here",
|
||||
"leave_source": "no"
|
||||
"leave_source": "yes"
|
||||
},
|
||||
"builders": [{
|
||||
"type": "amazon-ebs",
|
||||
@@ -27,7 +27,7 @@
|
||||
"source_ami_filter": {
|
||||
"filters": {
|
||||
"virtualization-type": "hvm",
|
||||
"name": "RHEL-8.8*",
|
||||
"name": "RHEL-8.8.0*",
|
||||
"root-device-type": "ebs",
|
||||
"architecture": "x86_64"
|
||||
},
|
||||
@@ -63,28 +63,22 @@
|
||||
"export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH",
|
||||
"sudo setenforce 0",
|
||||
"sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config",
|
||||
"echo registering",
|
||||
"sudo subscription-manager register --username={{user `redhat_username`}} --password={{user `redhat_password`}}",
|
||||
"sudo dnf upgrade -y",
|
||||
"sudo sed -i 's/manage_repos = 0/manage_repos = 1/' /etc/rhsm/rhsm.conf",
|
||||
"cat /etc/rhsm/rhsm.conf",
|
||||
"echo installing codeready repos",
|
||||
"sudo subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms",
|
||||
"echo installing epel repo",
|
||||
"sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm",
|
||||
"sudo dnf upgrade -y",
|
||||
"echo running /usr/bin/crb",
|
||||
"sudo /usr/bin/crb enable",
|
||||
"echo installing rpmfusion repo",
|
||||
"sudo dnf install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm",
|
||||
"echo installing Development tools",
|
||||
"sudo dnf install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm",
|
||||
"sudo dnf groupinstall -y 'RPM Development Tools'",
|
||||
"sudo dnf groupinstall -y 'Development Tools'",
|
||||
"echo installing needed packages",
|
||||
"sudo dnf install -y iptables-devel htop pandoc wget cmake ffmpeg ffmpeg-devel perl-IPC-Cmd pcre-devel iptables-devel \\",
|
||||
"google-perftools-devel libcurl-devel jq telnet libevent-devel xmlrpc-c-devel gperf libpcap-devel \\",
|
||||
"glib2-devel json-glib-devel hiredis-devel spandsp-devel mariadb-devel dnsutils speex libedit-devel opus-devel \\",
|
||||
"glib2-devel json-glib-devel spandsp-devel hiredis-devel libevent-devel xmlrpc-c-devel perl-IPC-Cmd mariadb-devel snapd",
|
||||
"sudo dnf install -y iptables-devel htop pandoc wget cmake ffmpeg ffmpeg-devel fail2ban \\",
|
||||
"perl-IPC-Cmd pcre-devel google-perftools-devel libcurl-devel curl jq telnet \\",
|
||||
"libevent-devel xmlrpc-c-devel gperf libpcap-devel glib2-devel json-glib-devel \\",
|
||||
"hiredis-devel spandsp-devel mariadb-devel dnsutils speex libedit-devel \\",
|
||||
"opus-devel lsof redis yasm perl-ExtUtils-Embed libmpg123-devel libshout-devel \\",
|
||||
"systemd-devel speex-devel speexdsp-devel re2-devel opusfile-devel libtiff-devel \\",
|
||||
"snapd libjpeg-devel libsndfile-devel lua-devel sqlite-devel libuuid-devel \\",
|
||||
"lame-devel libyuv-devel protobuf-compiler tcpdump kernel-devel-4.18.0-513.9.1.el8_9",
|
||||
"sudo dnf debuginfo-install -y binutils",
|
||||
"sudo chmod a+w /usr/local/src",
|
||||
"ssh-keyscan github.com >> ~/.ssh/known_hosts",
|
||||
@@ -110,6 +104,11 @@
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_os_tuning.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `rtp_engine_version`}}",
|
||||
"script": "scripts/install_rtpengine.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{build `ID`}}",
|
||||
@@ -125,11 +124,6 @@
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_nodejs.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `rtp_engine_version`}}",
|
||||
"script": "scripts/install_rtpengine.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"environment_vars": [
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"ami_description": "jambonz SBC SIP+RTP",
|
||||
"instance_type": "c6in.xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_arch": "amd64",
|
||||
"ami_base_image_owner": "309956199498",
|
||||
"rtp_engine_version": "mr11.5.1.1",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ami_description": "jambonz SBC SIP+RTP",
|
||||
"instance_type": "c6in.2xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_arch": "amd64",
|
||||
"ami_base_image_owner": "136693071363",
|
||||
"rtp_engine_version": "mr11.5.1.1",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ami_description": "jambonz SBC SIP",
|
||||
"instance_type": "t3.xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_arch": "amd64",
|
||||
"ami_base_image_owner": "309956199498",
|
||||
"install_datadog": "no",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ami_description": "jambonz SBC SIP",
|
||||
"instance_type": "t3.xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_arch": "amd64",
|
||||
"ami_base_image_owner": "136693071363",
|
||||
"install_datadog": "no",
|
||||
|
||||
@@ -0,0 +1,214 @@
|
||||
{
|
||||
"variables": {
|
||||
"region": "us-east-1",
|
||||
"ssh_username": "ec2-user",
|
||||
"ami_description": "jambonz all-in-one AMI",
|
||||
"instance_type": "c6in.2xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"jambonz_user": "admin",
|
||||
"jambonz_password": "JambonzR0ck$",
|
||||
"ami_base_image_owner": "309956199498",
|
||||
"install_telegraf": "yes",
|
||||
"homer_user": "homer_user",
|
||||
"homer_password": "XcapJTqy11LnsYRtxXGPTYQkAnI",
|
||||
"install_influxdb": "yes",
|
||||
"install_grafana": "yes",
|
||||
"install_homer": "yes",
|
||||
"install_jaeger": "yes",
|
||||
"install_cloudwatch": "yes",
|
||||
"install_nodered": "no",
|
||||
"influxdb_ip": "127.0.0.1",
|
||||
"rtp_engine_version": "mr11.4.1.4",
|
||||
"rtp_engine_min_port": "40000",
|
||||
"rtp_engine_max_port": "60000",
|
||||
"mediaserver_name" : "jambonz",
|
||||
"preferred_codec_list" : "PCMU,PCMA,OPUS,G722",
|
||||
"distro": "rhel-8",
|
||||
"redhat_username": "your-redhat_username-here",
|
||||
"redhat_password": "your-redhat_password-here",
|
||||
"leave_source": "yes"
|
||||
},
|
||||
"builders": [{
|
||||
"type": "amazon-ebs",
|
||||
"region": "{{user `region`}}",
|
||||
"source_ami_filter": {
|
||||
"filters": {
|
||||
"virtualization-type": "hvm",
|
||||
"name": "RHEL-8.8*",
|
||||
"root-device-type": "ebs",
|
||||
"architecture": "x86_64"
|
||||
},
|
||||
"owners": ["{{user `ami_base_image_owner`}}"],
|
||||
"most_recent": true
|
||||
},
|
||||
"instance_type": "{{user `instance_type`}}",
|
||||
"ssh_username": "{{user `ssh_username`}}",
|
||||
"ami_name": "jambonz-mini-{{user `jambonz_version`}}-{{user `distro`}}-{{isotime |clean_resource_name }}",
|
||||
"ami_description": "{{user `ami_description`}}",
|
||||
"launch_block_device_mappings": [
|
||||
{
|
||||
"device_name": "/dev/sda1",
|
||||
"volume_size": 100,
|
||||
"volume_type": "gp3",
|
||||
"delete_on_termination": true
|
||||
}
|
||||
],
|
||||
"tags": {
|
||||
"Name": "jambonz-mini"
|
||||
},
|
||||
"run_tags": {
|
||||
"Name": "jambonz-mini-build"
|
||||
}
|
||||
}],
|
||||
"provisioners": [
|
||||
{
|
||||
"type": "shell",
|
||||
"inline": [
|
||||
"while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 'Waiting for cloud-init...'; sleep 1; done",
|
||||
"export PATH=/usr/local/bin:$PATH",
|
||||
"export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH",
|
||||
"export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH",
|
||||
"sudo setenforce 0",
|
||||
"sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config",
|
||||
"sudo subscription-manager register --username={{user `redhat_username`}} --password={{user `redhat_password`}}",
|
||||
"sudo dnf upgrade -y",
|
||||
"sudo sed -i 's/manage_repos = 0/manage_repos = 1/' /etc/rhsm/rhsm.conf",
|
||||
"sudo subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms",
|
||||
"sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm",
|
||||
"sudo dnf install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm",
|
||||
"sudo dnf groupinstall -y 'RPM Development Tools'",
|
||||
"sudo dnf groupinstall -y 'Development Tools'",
|
||||
"sudo dnf install -y iptables-devel htop pandoc wget cmake ffmpeg ffmpeg-devel fail2ban \\",
|
||||
"perl-IPC-Cmd pcre-devel google-perftools-devel libcurl-devel curl jq telnet \\",
|
||||
"libevent-devel xmlrpc-c-devel gperf libpcap-devel glib2-devel json-glib-devel \\",
|
||||
"hiredis-devel spandsp-devel mariadb-devel dnsutils speex libedit-devel \\",
|
||||
"opus-devel lsof redis yasm perl-ExtUtils-Embed libmpg123-devel libshout-devel \\",
|
||||
"systemd-devel speex-devel speexdsp-devel re2-devel opusfile-devel libtiff-devel \\",
|
||||
"snapd libjpeg-devel libsndfile-devel lua-devel sqlite-devel libuuid-devel \\",
|
||||
"lame-devel libyuv-devel protobuf-compiler tcpdump kernel-devel-$(uname -r)",
|
||||
"sudo dnf debuginfo-install -y binutils",
|
||||
"sudo chmod a+w /usr/local/src",
|
||||
"mkdir ~/apps",
|
||||
"cd ~/apps",
|
||||
"git config --global advice.detachedHead false",
|
||||
"git clone https://github.com/jambonz/sbc-call-router.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/fsw-clear-old-calls.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/sbc-outbound.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/sbc-inbound.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/sbc-sip-sidecar.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/jambonz-feature-server.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/jambonz-api-server.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/jambonz-webapp.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/jambonz-smpp-esme.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/sbc-rtpengine-sidecar.git -b {{user `jambonz_version`}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "files/",
|
||||
"destination": "/tmp"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_os_tuning.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `rtp_engine_version`}}",
|
||||
"script": "scripts/install_rtpengine.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `jambonz_user`}} {{user `jambonz_password`}}",
|
||||
"script": "scripts/install_mysql.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_homer`}} {{user `homer_user`}} {{user `homer_password`}}",
|
||||
"script": "scripts/install_postgresql.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `drachtio_version`}}",
|
||||
"script": "scripts/install_drachtio.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_fail2ban.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_redis.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_influxdb`}}",
|
||||
"script": "scripts/install_influxdb.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_telegraf`}} {{user `influxdb_ip`}}",
|
||||
"script": "scripts/install_telegraf.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_grafana`}}",
|
||||
"script": "scripts/install_grafana.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_jaeger`}}",
|
||||
"script": "scripts/install_jaeger.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_homer`}} {{user `homer_user`}} {{user `homer_password`}}",
|
||||
"script": "scripts/install_homer.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_nginx.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_cloudwatch`}}",
|
||||
"script": "scripts/install_cloudwatch.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{build `ID`}}",
|
||||
"script": "scripts/install_apiban.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_nodejs.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"environment_vars": [
|
||||
"ARCH=amd64",
|
||||
"MEDIA_SERVER_NAME={{user `mediaserver_name`}}",
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}"
|
||||
],
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_freeswitch.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `jambonz_version`}} {{user `jambonz_user`}} {{user `jambonz_password`}}",
|
||||
"script": "scripts/install_app.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `leave_source`}}",
|
||||
"script": "scripts/cleanup.sh"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,214 @@
|
||||
{
|
||||
"variables": {
|
||||
"region": "us-east-1",
|
||||
"ssh_username": "ec2-user",
|
||||
"ami_description": "jambonz all-in-one AMI",
|
||||
"instance_type": "c6in.2xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"jambonz_user": "admin",
|
||||
"jambonz_password": "JambonzR0ck$",
|
||||
"ami_base_image_owner": "309956199498",
|
||||
"install_telegraf": "yes",
|
||||
"homer_user": "homer_user",
|
||||
"homer_password": "XcapJTqy11LnsYRtxXGPTYQkAnI",
|
||||
"install_influxdb": "yes",
|
||||
"install_grafana": "yes",
|
||||
"install_homer": "yes",
|
||||
"install_jaeger": "yes",
|
||||
"install_cloudwatch": "yes",
|
||||
"install_nodered": "no",
|
||||
"influxdb_ip": "127.0.0.1",
|
||||
"rtp_engine_version": "mr11.4.1.4",
|
||||
"rtp_engine_min_port": "40000",
|
||||
"rtp_engine_max_port": "60000",
|
||||
"mediaserver_name" : "jambonz",
|
||||
"preferred_codec_list" : "PCMU,PCMA,OPUS,G722",
|
||||
"distro": "rhel-9",
|
||||
"redhat_username": "your-redhat_username-here",
|
||||
"redhat_password": "your-redhat_password-here",
|
||||
"leave_source": "no"
|
||||
},
|
||||
"builders": [{
|
||||
"type": "amazon-ebs",
|
||||
"region": "{{user `region`}}",
|
||||
"source_ami_filter": {
|
||||
"filters": {
|
||||
"virtualization-type": "hvm",
|
||||
"name": "RHEL-9.2*",
|
||||
"root-device-type": "ebs",
|
||||
"architecture": "x86_64"
|
||||
},
|
||||
"owners": ["{{user `ami_base_image_owner`}}"],
|
||||
"most_recent": true
|
||||
},
|
||||
"instance_type": "{{user `instance_type`}}",
|
||||
"ssh_username": "{{user `ssh_username`}}",
|
||||
"ami_name": "jambonz-mini-{{user `jambonz_version`}}-{{user `distro`}}-{{isotime |clean_resource_name }}",
|
||||
"ami_description": "{{user `ami_description`}}",
|
||||
"launch_block_device_mappings": [
|
||||
{
|
||||
"device_name": "/dev/sda1",
|
||||
"volume_size": 100,
|
||||
"volume_type": "gp3",
|
||||
"delete_on_termination": true
|
||||
}
|
||||
],
|
||||
"tags": {
|
||||
"Name": "jambonz-mini"
|
||||
},
|
||||
"run_tags": {
|
||||
"Name": "jambonz-mini-build"
|
||||
}
|
||||
}],
|
||||
"provisioners": [
|
||||
{
|
||||
"type": "shell",
|
||||
"inline": [
|
||||
"while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 'Waiting for cloud-init...'; sleep 1; done",
|
||||
"export PATH=/usr/local/bin:$PATH",
|
||||
"export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH",
|
||||
"export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH",
|
||||
"sudo setenforce 0",
|
||||
"sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config",
|
||||
"sudo subscription-manager register --username={{user `redhat_username`}} --password={{user `redhat_password`}}",
|
||||
"sudo dnf upgrade -y",
|
||||
"sudo sed -i 's/manage_repos = 0/manage_repos = 1/' /etc/rhsm/rhsm.conf",
|
||||
"sudo subscription-manager repos --enable=codeready-builder-for-rhel-9-x86_64-rpms",
|
||||
"sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm",
|
||||
"sudo /usr/bin/crb enable || true",
|
||||
"sudo dnf install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm",
|
||||
"sudo dnf groupinstall -y 'RPM Development Tools'",
|
||||
"sudo dnf groupinstall -y 'Development Tools'",
|
||||
"sudo dnf install -y iptables-devel htop pandoc wget cmake ffmpeg ffmpeg-devel fail2ban \\",
|
||||
"perl-IPC-Cmd pcre-devel google-perftools-devel libcurl-devel curl jq telnet \\",
|
||||
"libevent-devel xmlrpc-c-devel gperf libpcap-devel glib2-devel json-glib-devel \\",
|
||||
"hiredis-devel spandsp-devel mariadb-devel dnsutils speex libedit-devel \\",
|
||||
"opus-devel lsof redis yasm perl-ExtUtils-Embed libmpg123-devel libshout-devel \\",
|
||||
"systemd-devel speex-devel speexdsp-devel re2-devel opusfile-devel libtiff-devel \\",
|
||||
"snapd libjpeg-devel libsndfile-devel lua-devel sqlite-devel libuuid-devel \\",
|
||||
"lame-devel libyuv-devel protobuf-compiler tcpdump",
|
||||
"sudo dnf debuginfo-install -y binutils",
|
||||
"sudo chmod a+w /usr/local/src",
|
||||
"mkdir ~/apps",
|
||||
"cd ~/apps",
|
||||
"git config --global advice.detachedHead false",
|
||||
"git clone https://github.com/jambonz/sbc-call-router.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/fsw-clear-old-calls.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/sbc-outbound.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/sbc-inbound.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/sbc-sip-sidecar.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/jambonz-feature-server.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/jambonz-api-server.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/jambonz-webapp.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/jambonz-smpp-esme.git -b {{user `jambonz_version`}}",
|
||||
"git clone https://github.com/jambonz/sbc-rtpengine-sidecar.git -b {{user `jambonz_version`}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "files/",
|
||||
"destination": "/tmp"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_os_tuning.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `drachtio_version`}}",
|
||||
"script": "scripts/install_drachtio.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_fail2ban.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_redis.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `jambonz_user`}} {{user `jambonz_password`}}",
|
||||
"script": "scripts/install_mysql.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_influxdb`}}",
|
||||
"script": "scripts/install_influxdb.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_homer`}} {{user `homer_user`}} {{user `homer_password`}}",
|
||||
"script": "scripts/install_postgresql.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_telegraf`}} {{user `influxdb_ip`}}",
|
||||
"script": "scripts/install_telegraf.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_grafana`}}",
|
||||
"script": "scripts/install_grafana.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_jaeger`}}",
|
||||
"script": "scripts/install_jaeger.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_homer`}} {{user `homer_user`}} {{user `homer_password`}}",
|
||||
"script": "scripts/install_homer.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_nginx.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `install_cloudwatch`}}",
|
||||
"script": "scripts/install_cloudwatch.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{build `ID`}}",
|
||||
"script": "scripts/install_apiban.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `rtp_engine_version`}}",
|
||||
"script": "scripts/install_rtpengine.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_nodejs.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"environment_vars": [
|
||||
"ARCH=amd64",
|
||||
"MEDIA_SERVER_NAME={{user `mediaserver_name`}}",
|
||||
"PREFERRED_CODEC_LIST={{user `preferred_codec_list`}}"
|
||||
],
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}}",
|
||||
"script": "scripts/install_freeswitch.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `jambonz_version`}} {{user `jambonz_user`}} {{user `jambonz_password`}}",
|
||||
"script": "scripts/install_app.sh"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo '{{ .Path }}' {{user `distro`}} {{user `leave_source`}}",
|
||||
"script": "scripts/cleanup.sh"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
"ssh_username": "admin",
|
||||
"ami_description": "jambonz web+monitoring server",
|
||||
"instance_type": "t3.xlarge",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_arch": "amd64",
|
||||
"ami_base_image_owner": "136693071363",
|
||||
"install_datadog": "no",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ami_description": "jambonz webserver",
|
||||
"instance_type": "t3.xlarge",
|
||||
"drachtio_version": "v0.8.24",
|
||||
"jambonz_version": "v0.8.5-5",
|
||||
"jambonz_version": "v0.8.5-6",
|
||||
"ami_base_image_owner": "136693071363",
|
||||
"install_datadog": "no",
|
||||
"install_cloudwatch": "yes",
|
||||
|
||||
Reference in New Issue
Block a user