Testing node self sync
This commit is contained in:
parent
27d9aa5064
commit
792f7caa82
|
@ -42,6 +42,8 @@ JibriBrewery=TBD
|
||||||
JB_NAME=TBD
|
JB_NAME=TBD
|
||||||
JB_AUTH_PASS=TBD
|
JB_AUTH_PASS=TBD
|
||||||
JB_REC_PASS=TBD
|
JB_REC_PASS=TBD
|
||||||
|
MJS_USER=TBD
|
||||||
|
MJS_USER_PASS=TBD
|
||||||
THIS_SRV_DIST=$(lsb_release -sc)
|
THIS_SRV_DIST=$(lsb_release -sc)
|
||||||
JITSI_REPO=$(apt-cache policy | grep http | grep jitsi | grep stable | awk '{print $3}' | head -n 1 | cut -d "/" -f1)
|
JITSI_REPO=$(apt-cache policy | grep http | grep jitsi | grep stable | awk '{print $3}' | head -n 1 | cut -d "/" -f1)
|
||||||
START=0
|
START=0
|
||||||
|
@ -53,6 +55,9 @@ CHD_VER="$(curl -sL https://chromedriver.storage.googleapis.com/LATEST_RELEASE)"
|
||||||
GOOGL_REPO="/etc/apt/sources.list.d/dl_google_com_linux_chrome_deb.list"
|
GOOGL_REPO="/etc/apt/sources.list.d/dl_google_com_linux_chrome_deb.list"
|
||||||
GCMP_JSON="/etc/opt/chrome/policies/managed/managed_policies.json"
|
GCMP_JSON="/etc/opt/chrome/policies/managed/managed_policies.json"
|
||||||
PUBLIC_IP="$(dig -4 @resolver1.opendns.com ANY myip.opendns.com +short)"
|
PUBLIC_IP="$(dig -4 @resolver1.opendns.com ANY myip.opendns.com +short)"
|
||||||
|
NJN_RAND_TAIL="$(tr -dc "a-zA-Z0-9" < /dev/urandom | fold -w 4 | head -n1)"
|
||||||
|
NJN_USER="jbnode${ADDUP}_${NJN_RAND_TAIL}"
|
||||||
|
NJN_USER_PASS="$(tr -dc "a-zA-Z0-9#_*=" < /dev/urandom | fold -w 32 | head -n1)"
|
||||||
### 1_VAR_DEF
|
### 1_VAR_DEF
|
||||||
|
|
||||||
# sed limiters for add-jibri-node.sh variables
|
# sed limiters for add-jibri-node.sh variables
|
||||||
|
@ -354,6 +359,82 @@ jibri {
|
||||||
}
|
}
|
||||||
NEW_CONF
|
NEW_CONF
|
||||||
|
|
||||||
|
echo -e "\n---- Create random nodesync user ----"
|
||||||
|
useradd -m -g jibri $NJN_USER
|
||||||
|
echo "$NJN_USER:$NJN_USER_PASS" | chpasswd
|
||||||
|
|
||||||
|
#Create ssh key
|
||||||
|
sudo su $NJN_USER -c "ssh-keygen -t rsa -f ~/.ssh/id_rsa -b 4096 -o -a 100 -q -N ''"
|
||||||
|
ssh $MJS_USER@$MAIN_SRV_DOMAIN sh -c "'cat >> .ssh/authorized_keys'" < /home/$NJN_USER/.ssh/id_rsa.pub
|
||||||
|
|
||||||
|
echo -e "\n---- Setup Log system ----"
|
||||||
|
cat << INOT_RSYNC > /etc/jitsi/jibri/remote-jbsync.sh
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Log process
|
||||||
|
exec 3>&1 4>&2
|
||||||
|
trap 'exec 2>&4 1>&3' 0 1 2 3
|
||||||
|
exec 1>/var/log/$NJN_USER/remote_jnsync.log 2>&1
|
||||||
|
|
||||||
|
# Run sync
|
||||||
|
while true; do
|
||||||
|
inotifywait -t 60 -r -e modify,attrib,close_write,move,delete $DIR_RECORD
|
||||||
|
sudo su $NJN_USER -c "rsync -Aax --info=progress2 --remove-source-files --exclude '.*/' $DIR_RECORD/ $MJS_USER@$MAIN_SRV_DOMAIN:$DIR_RECORD" && \\
|
||||||
|
find $DIR_RECORD -depth -type d -empty -not -path $DIR_RECORD -delete
|
||||||
|
done
|
||||||
|
INOT_RSYNC
|
||||||
|
|
||||||
|
|
||||||
|
mkdir /var/log/$NJN_USER
|
||||||
|
|
||||||
|
cat << LOG_ROT >> /etc/logrotate.d/$NJN_USER
|
||||||
|
/var/log/$NJN_USER/*.log {
|
||||||
|
monthly
|
||||||
|
missingok
|
||||||
|
rotate 12
|
||||||
|
compress
|
||||||
|
notifempty
|
||||||
|
create 0640 root root
|
||||||
|
sharedscripts
|
||||||
|
postrotate
|
||||||
|
service remote_jnsync restart
|
||||||
|
endscript
|
||||||
|
}
|
||||||
|
LOG_ROT
|
||||||
|
|
||||||
|
echo -e "\n---- Create systemd service file ----"
|
||||||
|
cat << REMOTE_SYNC_SERVICE > /etc/systemd/system/remote_jnsync.service
|
||||||
|
[Unit]
|
||||||
|
Description = Sync Node to Main Jibri Service
|
||||||
|
After = network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
PIDFile = /run/syncservice/remote_jnsync.pid
|
||||||
|
User = root
|
||||||
|
Group = root
|
||||||
|
WorkingDirectory = /var
|
||||||
|
ExecStartPre = /bin/mkdir /run/syncservice
|
||||||
|
ExecStartPre = /bin/chown -R root:root /run/syncservice
|
||||||
|
ExecStart = /bin/bash /etc/jitsi/jibri/remote-jbsync.sh
|
||||||
|
ExecReload = /bin/kill -s HUP \$MAINPID
|
||||||
|
ExecStop = /bin/kill -s TERM \$MAINPID
|
||||||
|
ExecStopPost = /bin/rm -rf /run/syncservice
|
||||||
|
PrivateTmp = true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy = multi-user.target
|
||||||
|
REMOTE_SYNC_SERVICE
|
||||||
|
|
||||||
|
chmod 755 /etc/systemd/system/remote_jnsync.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
|
||||||
|
systemctl enable remote_jnsync.service
|
||||||
|
systemctl start remote_jnsync.service
|
||||||
|
|
||||||
|
echo "Copying updated add-jibri-node.sh file to main server sync user..."
|
||||||
|
cp $PWD/add-jibri-node.sh /tmp
|
||||||
|
sudo su $NJN_USER -c "scp /tmp/add-jibri-node.sh $MJS_USER@$MAIN_SRV_DOMAIN:/home/$MJS_USER"
|
||||||
|
|
||||||
echo "Writting last node number..."
|
echo "Writting last node number..."
|
||||||
sed -i "$(var_dlim 0_VAR),$(var_dlim 1_VAR){s|LAST=.*|LAST=$ADDUP|}" add-jibri-node.sh
|
sed -i "$(var_dlim 0_VAR),$(var_dlim 1_VAR){s|LAST=.*|LAST=$ADDUP|}" add-jibri-node.sh
|
||||||
sed -i "$(var_dlim 0_LAST),$(var_dlim 1_LAST){s|LETS: .*|LETS: $(date -R)|}" add-jibri-node.sh
|
sed -i "$(var_dlim 0_LAST),$(var_dlim 1_LAST){s|LETS: .*|LETS: $(date -R)|}" add-jibri-node.sh
|
||||||
|
|
Loading…
Reference in New Issue