parent
ad8c4af3b8
commit
7f13eeafb3
|
@ -9,18 +9,18 @@
|
|||
|
||||
#Make sure the file name is the required one
|
||||
if [ ! "$(basename $0)" = "add-jibri-node.sh" ]; then
|
||||
echo "For most cases naming won't matter, for this one it does."
|
||||
echo "Please use the original name for this script: \`add-jibri-node.sh', and run again."
|
||||
exit
|
||||
echo "For most cases naming won't matter, for this one it does."
|
||||
echo "Please use the original name for this script: \`add-jibri-node.sh', and run again."
|
||||
exit
|
||||
fi
|
||||
|
||||
while getopts m: option
|
||||
do
|
||||
case "${option}"
|
||||
in
|
||||
m) MODE=${OPTARG};;
|
||||
\?) echo "Usage: sudo ./add_jibri_node.sh [-m debug]" && exit;;
|
||||
esac
|
||||
case "${option}"
|
||||
in
|
||||
m) MODE=${OPTARG};;
|
||||
\?) echo "Usage: sudo ./add_jibri_node.sh [-m debug]" && exit;;
|
||||
esac
|
||||
done
|
||||
|
||||
#DEBUG
|
||||
|
@ -66,33 +66,75 @@ TEST_JIBRI_ENV="$GITHUB_RAW/$GIT_REPO/unstable/tools/test-jibri-env.sh"
|
|||
|
||||
# sed limiters for add-jibri-node.sh variables
|
||||
var_dlim() {
|
||||
grep -n $1 add-jibri-node.sh|head -n1|cut -d ":" -f1
|
||||
grep -n $1 add-jibri-node.sh|head -n1|cut -d ":" -f1
|
||||
}
|
||||
|
||||
check_var() {
|
||||
if [ -z "$2" ]; then
|
||||
echo -e "Check if variable $1 is set: \xE2\x9C\x96 \nExiting..."
|
||||
exit
|
||||
else
|
||||
echo -e "Check if variable $1 is set: \xE2\x9C\x94"
|
||||
fi
|
||||
if [ "$2" = "TBD" ]; then
|
||||
echo -e "Check if variable $1 is set: \xE2\x9C\x96"
|
||||
exit
|
||||
else
|
||||
echo -e "Check if variable $1 is set: \xE2\x9C\x94"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ -z "$LAST" ]; then
|
||||
echo "There is an error on the LAST definition, please report."
|
||||
exit
|
||||
echo "There is an error on the LAST definition, please report."
|
||||
exit
|
||||
elif [ "$LAST" = "TBD" ]; then
|
||||
ADDUP=$((START + 1))
|
||||
ADDUP=$((START + 1))
|
||||
else
|
||||
ADDUP=$((LAST + 1))
|
||||
ADDUP=$((LAST + 1))
|
||||
fi
|
||||
|
||||
echo "
|
||||
#-----------------------------------------------------------------------
|
||||
# Checking initial necessary variables...
|
||||
#-----------------------------------------------------------------------"
|
||||
|
||||
JMS_DATA=($MAIN_SRV_DIST \
|
||||
$MAIN_SRV_REPO \
|
||||
$MAIN_SRV_DOMAIN \
|
||||
$JibriBrewery \
|
||||
$JB_NAME \
|
||||
$JB_AUTH_PASS \
|
||||
$JB_REC_PASS \
|
||||
$MJS_USER \
|
||||
$MJS_USER_PASS)
|
||||
|
||||
JMS_EVAL=${JMS_DATA[0]}
|
||||
for i in "${JMS_DATA[@]}"; do
|
||||
if [[ "$JMS_EVAL" != "$i" ]]; then
|
||||
ALL_TBD="no"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ "$ALL_TBD" = "no" ];then
|
||||
echo -e "Good, seems this is not a vanilla copy of add-jibri-node.sh,
|
||||
let's check variables ...\n"
|
||||
else
|
||||
echo -e "You seem to be using a vanilla copy of the add-jibri-node.sh.
|
||||
> Please use the content (or apply the changes) of add-jibri-node.sh from
|
||||
the main Jitsi server installation folder, as it contains necessary data.\n"
|
||||
exit
|
||||
fi
|
||||
|
||||
check_var MAIN_SRV_DIST "$MAIN_SRV_DIST"
|
||||
check_var MAIN_SRV_REPO "$MAIN_SRV_REPO"
|
||||
check_var MAIN_SRV_DOMAIN "$MAIN_SRV_DOMAIN"
|
||||
check_var JibriBrewery "$JibriBrewery"
|
||||
check_var JB_NAME "$JB_NAME"
|
||||
check_var JB_AUTH_PASS "$JB_AUTH_PASS"
|
||||
check_var JB_REC_PASS "$JB_REC_PASS"
|
||||
check_var MJS_USER "$MJS_USER"
|
||||
check_var MJS_USER_PASS "$MJS_USER_PASS"
|
||||
|
||||
#Check server and node OS
|
||||
if [ ! "$THIS_SRV_DIST" = "$MAIN_SRV_DIST" ]; then
|
||||
echo "Please use the same OS for the jibri setup on both servers."
|
||||
echo "This server is based on: $THIS_SRV_DIST"
|
||||
echo "The main server record claims is based on: $MAIN_SRV_DIST"
|
||||
exit
|
||||
echo "Please use the same OS for the jibri setup on both servers."
|
||||
echo "This server is based on: $THIS_SRV_DIST"
|
||||
echo "The main server record claims is based on: $MAIN_SRV_DIST"
|
||||
exit
|
||||
fi
|
||||
|
||||
#Check system resources
|
||||
|
@ -140,21 +182,6 @@ else
|
|||
done
|
||||
fi
|
||||
|
||||
echo "
|
||||
#-----------------------------------------------------------------------
|
||||
# Checking initial necessary variables...
|
||||
#-----------------------------------------------------------------------"
|
||||
|
||||
check_var MAIN_SRV_DIST "$MAIN_SRV_DIST"
|
||||
check_var MAIN_SRV_REPO "$MAIN_SRV_REPO"
|
||||
check_var MAIN_SRV_DOMAIN "$MAIN_SRV_DOMAIN"
|
||||
check_var JibriBrewery "$JibriBrewery"
|
||||
check_var JB_NAME "$JB_NAME"
|
||||
check_var JB_AUTH_PASS "$JB_AUTH_PASS"
|
||||
check_var JB_REC_PASS "$JB_REC_PASS"
|
||||
check_var MJS_USER "$MJS_USER"
|
||||
check_var MJS_USER_PASS "$MJS_USER_PASS"
|
||||
|
||||
# Rename hostname for each jibri node
|
||||
hostnamectl set-hostname "jbnode${ADDUP}.${MAIN_SRV_DOMAIN}"
|
||||
sed -i "1i 127.0.0.1 jbnode${ADDUP}.${MAIN_SRV_DOMAIN}" /etc/hosts
|
||||
|
@ -162,15 +189,15 @@ sed -i "1i 127.0.0.1 jbnode${ADDUP}.${MAIN_SRV_DOMAIN}" /etc/hosts
|
|||
# Jitsi-Meet Repo
|
||||
echo "Add Jitsi repo"
|
||||
if [ -z "$JITSI_REPO" ]; then
|
||||
echo "deb http://download.jitsi.org $MAIN_SRV_REPO/" > /etc/apt/sources.list.d/jitsi-$MAIN_SRV_REPO.list
|
||||
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
|
||||
echo "deb http://download.jitsi.org $MAIN_SRV_REPO/" > /etc/apt/sources.list.d/jitsi-$MAIN_SRV_REPO.list
|
||||
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
|
||||
elif [ ! "$JITSI_REPO" = "$MAIN_SRV_REPO" ]; then
|
||||
echo "Main and node servers repository don't match, extiting.."
|
||||
exit
|
||||
echo "Main and node servers repository don't match, extiting.."
|
||||
exit
|
||||
elif [ "$JITSI_REPO" = "$MAIN_SRV_REPO" ]; then
|
||||
echo "Main and node servers repository match, continuing..."
|
||||
echo "Main and node servers repository match, continuing..."
|
||||
else
|
||||
echo "Jitsi $JITSI_REPO repository already installed"
|
||||
echo "Jitsi $JITSI_REPO repository already installed"
|
||||
fi
|
||||
|
||||
# Requirements
|
||||
|
@ -179,30 +206,30 @@ apt-get update -q2
|
|||
apt-get dist-upgrade -yq2
|
||||
|
||||
apt-get -y install \
|
||||
apt-show-versions \
|
||||
bmon \
|
||||
curl \
|
||||
ffmpeg \
|
||||
git \
|
||||
htop \
|
||||
inotify-tools \
|
||||
jq \
|
||||
rsync \
|
||||
ssh \
|
||||
unzip \
|
||||
wget
|
||||
apt-show-versions \
|
||||
bmon \
|
||||
curl \
|
||||
ffmpeg \
|
||||
git \
|
||||
htop \
|
||||
inotify-tools \
|
||||
jq \
|
||||
rsync \
|
||||
ssh \
|
||||
unzip \
|
||||
wget
|
||||
|
||||
check_snd_driver() {
|
||||
echo -e "\n# Checking ALSA - Loopback module..."
|
||||
echo "snd-aloop" | tee -a /etc/modules
|
||||
modprobe snd-aloop
|
||||
if [ "$(lsmod | grep snd_aloop | head -n 1 | cut -d " " -f1)" = "snd_aloop" ]; then
|
||||
echo "
|
||||
echo "
|
||||
#-----------------------------------------------------------------------
|
||||
# Audio driver seems - OK.
|
||||
#-----------------------------------------------------------------------"
|
||||
else
|
||||
echo "
|
||||
echo "
|
||||
#-----------------------------------------------------------------------
|
||||
# Your audio driver might not be able to load.
|
||||
# We'll check the state of this Jibri with our 'test-jibri-env.sh' tool.
|
||||
|
@ -241,25 +268,25 @@ apt-get -y install \
|
|||
|
||||
echo "# Installing Google Chrome / ChromeDriver"
|
||||
if [ "$GOOGLE_ACTIVE_REPO" = "main" ]; then
|
||||
echo "Google repository already set."
|
||||
echo "Google repository already set."
|
||||
else
|
||||
echo "Installing Google Chrome Stable"
|
||||
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
|
||||
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | tee $GOOGL_REPO
|
||||
echo "Installing Google Chrome Stable"
|
||||
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
|
||||
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | tee $GOOGL_REPO
|
||||
fi
|
||||
apt-get -q2 update
|
||||
apt-get install -y google-chrome-stable
|
||||
rm -rf /etc/apt/sources.list.d/dl_google_com_linux_chrome_deb.list
|
||||
|
||||
if [ -f /usr/local/bin/chromedriver ]; then
|
||||
echo "Chromedriver already installed."
|
||||
echo "Chromedriver already installed."
|
||||
else
|
||||
echo "Installing Chromedriver"
|
||||
wget -q https://chromedriver.storage.googleapis.com/$CHD_VER/chromedriver_linux64.zip -O /tmp/chromedriver_linux64.zip
|
||||
unzip /tmp/chromedriver_linux64.zip -d /usr/local/bin/
|
||||
chown root:root /usr/local/bin/chromedriver
|
||||
chmod 0755 /usr/local/bin/chromedriver
|
||||
rm -rf /tpm/chromedriver_linux64.zip
|
||||
echo "Installing Chromedriver"
|
||||
wget -q https://chromedriver.storage.googleapis.com/$CHD_VER/chromedriver_linux64.zip -O /tmp/chromedriver_linux64.zip
|
||||
unzip /tmp/chromedriver_linux64.zip -d /usr/local/bin/
|
||||
chown root:root /usr/local/bin/chromedriver
|
||||
chmod 0755 /usr/local/bin/chromedriver
|
||||
rm -rf /tpm/chromedriver_linux64.zip
|
||||
fi
|
||||
|
||||
echo "
|
||||
|
@ -333,57 +360,57 @@ jibri {
|
|||
xmpp {
|
||||
environments = [
|
||||
{
|
||||
// A user-friendly name for this environment
|
||||
name = "$JB_NAME"
|
||||
// A user-friendly name for this environment
|
||||
name = "$JB_NAME"
|
||||
|
||||
// A list of XMPP server hosts to which we'll connect
|
||||
xmpp-server-hosts = [ "$MAIN_SRV_DOMAIN" ]
|
||||
// A list of XMPP server hosts to which we'll connect
|
||||
xmpp-server-hosts = [ "$MAIN_SRV_DOMAIN" ]
|
||||
|
||||
// The base XMPP domain
|
||||
xmpp-domain = "$MAIN_SRV_DOMAIN"
|
||||
// The base XMPP domain
|
||||
xmpp-domain = "$MAIN_SRV_DOMAIN"
|
||||
|
||||
// The MUC we'll join to announce our presence for
|
||||
// recording and streaming services
|
||||
control-muc {
|
||||
domain = "internal.auth.$MAIN_SRV_DOMAIN"
|
||||
room-name = "$JibriBrewery"
|
||||
nickname = "Live-$ADDUP"
|
||||
}
|
||||
// The MUC we'll join to announce our presence for
|
||||
// recording and streaming services
|
||||
control-muc {
|
||||
domain = "internal.auth.$MAIN_SRV_DOMAIN"
|
||||
room-name = "$JibriBrewery"
|
||||
nickname = "Live-$ADDUP"
|
||||
}
|
||||
|
||||
// The login information for the control MUC
|
||||
control-login {
|
||||
domain = "auth.$MAIN_SRV_DOMAIN"
|
||||
username = "jibri"
|
||||
password = "$JB_AUTH_PASS"
|
||||
}
|
||||
// The login information for the control MUC
|
||||
control-login {
|
||||
domain = "auth.$MAIN_SRV_DOMAIN"
|
||||
username = "jibri"
|
||||
password = "$JB_AUTH_PASS"
|
||||
}
|
||||
|
||||
// An (optional) MUC configuration where we'll
|
||||
// join to announce SIP gateway services
|
||||
// sip-control-muc {
|
||||
// domain = "domain"
|
||||
// room-name = "room-name"
|
||||
// nickname = "nickname"
|
||||
// }
|
||||
// An (optional) MUC configuration where we'll
|
||||
// join to announce SIP gateway services
|
||||
// sip-control-muc {
|
||||
// domain = "domain"
|
||||
// room-name = "room-name"
|
||||
// nickname = "nickname"
|
||||
// }
|
||||
|
||||
// The login information the selenium web client will use
|
||||
call-login {
|
||||
domain = "recorder.$MAIN_SRV_DOMAIN"
|
||||
username = "recorder"
|
||||
password = "$JB_REC_PASS"
|
||||
}
|
||||
// The login information the selenium web client will use
|
||||
call-login {
|
||||
domain = "recorder.$MAIN_SRV_DOMAIN"
|
||||
username = "recorder"
|
||||
password = "$JB_REC_PASS"
|
||||
}
|
||||
|
||||
// The value we'll strip from the room JID domain to derive
|
||||
// the call URL
|
||||
strip-from-room-domain = "conference."
|
||||
// The value we'll strip from the room JID domain to derive
|
||||
// the call URL
|
||||
strip-from-room-domain = "conference."
|
||||
|
||||
// How long Jibri sessions will be allowed to last before
|
||||
// they are stopped. A value of 0 allows them to go on
|
||||
// indefinitely
|
||||
usage-timeout = 0 hour
|
||||
// How long Jibri sessions will be allowed to last before
|
||||
// they are stopped. A value of 0 allows them to go on
|
||||
// indefinitely
|
||||
usage-timeout = 0 hour
|
||||
|
||||
// Whether or not we'll automatically trust any cert on
|
||||
// this XMPP domain
|
||||
trust-all-xmpp-certs = true
|
||||
// Whether or not we'll automatically trust any cert on
|
||||
// this XMPP domain
|
||||
trust-all-xmpp-certs = true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue