|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/bin/bash
-
- LOG=/tmp/bubble.algo_refresh_users.log
-
- function die {
- echo 1>&2 "${1}"
- log "${1}"
- exit 1
- }
-
- function log {
- echo "$(date): ${1}" >> ${LOG}
- }
-
- ALGO_BASE=/root/ansible/roles/algo/algo-master
- if [[ ! -d ${ALGO_BASE} ]] ; then
- die "Algo VPN directory ${ALGO_BASE} not found"
- fi
-
- CA_PASS_FILE="/home/bubble/.BUBBLE_ALGO_CA_KEY_PASSWORD"
- if [[ ! -f "${CA_PASS_FILE}" ]] ; then
- die "No CA password file found: ${CA_PASS_FILE}"
- fi
- if [[ ! -f "${ALGO_BASE}/config.cfg.hbs" ]] ; then
- die "No ${ALGO_BASE}/config.cfg.hbs found"
- fi
-
- log "Regenerating algo config..."
- java -cp /home/bubble/current/bubble.jar bubble.main.BubbleMain generate-algo-conf --algo-config ${ALGO_BASE}/config.cfg.hbs || die "Error writing algo config.cfg"
-
- log "Updating algo VPN users..."
- cd ${ALGO_BASE} && \
- python3 -m virtualenv --python="$(command -v python3)" .env \
- && source .env/bin/activate \
- && python3 -m pip install -U pip virtualenv \
- && python3 -m pip install -r requirements.txt \
- && ansible-playbook users.yml --tags update-users --skip-tags debug \
- -e "ca_password=$(cat ${CA_PASS_FILE})
- provider=local
- server=localhost
- store_cakey=true
- ondemand_cellular=false
- ondemand_wifi=false
- store_pki=true
- dns_adblocking=false
- ssh_tunneling=false
- endpoint={{ endpoint }}
- server_name={{ server_name }}" 2>&1 | tee -a ${LOG} || die "Error running algo users.yml"
-
- # Archive configs in a place that the BackupService can pick them up
- log "Sync'ing algo VPN users to bubble..."
- CONFIGS_BACKUP=/home/bubble/.BUBBLE_ALGO_CONFIGS.tgz
- cd ${ALGO_BASE} && tar czf ${CONFIGS_BACKUP} configs && chgrp bubble ${CONFIGS_BACKUP} && chmod 660 ${CONFIGS_BACKUP} || die "Error backing up algo configs"
- cd /home/bubble && rm -rf configs/* && tar xzf ${CONFIGS_BACKUP} && chgrp -R bubble configs && chown -R bubble configs && chmod 500 configs || die "Error unpacking algo configs to bubble home"
-
- log "VPN users successfully sync'd to bubble"
|