diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c13d217 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +hcloud +actualIP diff --git a/cloud-init b/cloud-init new file mode 100644 index 0000000..32e2123 --- /dev/null +++ b/cloud-init @@ -0,0 +1,106 @@ +#cloud-config +# vim: syntax=yaml +users: + - name: dryudan + groups: users, admin + sudo: ALL=(ALL) NOPASSWD:ALL + shell: /bin/bash + ssh_authorized_keys: + - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINF+bi103OW7hfuVXoO/MLzR9Ymi7wx0HGt7WvH8vrSa ansible@Mul.dryusdan.fr +apt: + sources: + docker.list: + source: deb [arch=amd64] https://download.docker.com/linux/debian $RELEASE stable + key: | + -----BEGIN PGP PUBLIC KEY BLOCK----- + + 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 + YT90qFF93M3v01BbxP+EIY2/9tiIPbrd + =0YYh + -----END PGP PUBLIC KEY BLOCK----- +packages: + - docker-ce + - docker-ce-cli + - docker-compose + - git + - jq +package_update: true +package_upgrade: true +runcmd: + - git clone -b $(curl --silent "https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest" | jq -r ".tag_name") https://github.com/jitsi/docker-jitsi-meet.git /root/jitsi + - cp /root/jitsi/env.example /root/jitsi/.env + - sed -i "s/HTTPS_PORT=8443/HTTPS_PORT=443/" /root/jitsi/.env + - sed -i "s/HTTP_PORT=8000/HTTP_PORT=80/" /root/jitsi/.env + - sed -i "s|CONFIG=~/.jitsi-meet-cfg|CONFIG=/root/.jitsi-meet-cfg|" /root/jitsi/.env + - sed -i -e '$aPUBLIC_URL=https://meet.dryusdan.net' /root/jitsi/.env + - sed -i -e '$aENABLE_LETSENCRYPT=1' /root/jitsi/.env + - sed -i -e '$aLETSENCRYPT_DOMAIN=meet.dryusdan.net' /root/jitsi/.env + - sed -i -e '$aLETSENCRYPT_EMAIL=ssl@dryusdan.fr' /root/jitsi/.env + - sed -i -e '$aLETSENCRYPT_USE_STAGING=1' /root/jitsi/.env + - sed -i -e '$aENABLE_HTTP_REDIRECT=1' /root/jitsi/.env + - /root/jitsi/gen-passwords.sh + - mkdir -p /root/.jitsi-meet-cfg/web/letsencrypt + - mkdir -p /root/.jitsi-meet-cfg/transcripts + - mkdir -p /root/.jitsi-meet-cfg/prosody/config + - mkdir -p /root/.jitsi-meet-cfg/prosody/prosody-plugins-custom + - mkdir -p /root/.jitsi-meet-cfg/jicofo + - mkdir -p /root/.jitsi-meet-cfg/jvb + - mkdir -p /root/.jitsi-meet-cfg/jigasi + - mkdir -p /root/.jitsi-meet-cfg/jibri + - touch /root/dry.tst diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..8df32dd --- /dev/null +++ b/deploy.sh @@ -0,0 +1,56 @@ +#!/bin/bash +## author : Dryusdan +## date : 15/02/2020 +## description : A MySQL dumper +## usage : ./mysqlbackup.sh /BASE/BACKUP/FOLDER RETENTION USERNAME PASSWORD HOST + +## Bash strict mode #################################### +set -o errexit # abort on nonzero exitstatus +set -o pipefail # don't hide errors within pipes + +#set -o nounset # abort on unbound variable + +## Bash color ########################################## +# Set colors +RED='\033[0;31m' +GREEN='\033[00;32m' +YELLOW='\033[00;33m' +BLUE='\033[00;34m' +PURPLE='\033[00;35m' +CYAN='\033[00;36m' +LIGHTGRAY='\033[00;37m' +LRED='\033[01;31m' +LGREEN='\033[01;32m' +LYELLOW='\033[01;33m' +LBLUE='\033[01;34m' +LPURPLE='\033[01;35m' +LCYAN='\033[01;36m' +WHITE='\033[01;37m' +NC='\033[0m' # No Color + +## Logs ################################################ +readonly SCRIPTNAME="$(basename "$0")" +readonly SCRIPTDIR=$(pwd) +info() { echo -e "${LBLUE}[INFO] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +warning() { echo -e "${YELLOW}[WARNING] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +error() { echo -e "${LRED}[ERROR] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +fatal() { echo -e "${RED}[FATAL] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; exit 1 ; } + +## Script ############################################# +info "Create VM" +${SCRIPTDIR}/hcloud server create --name jitsi-tst --label server=jitsi --image 5924233 --firewall 23945 --type 1 --location nbg1 --ssh-key 613376 --ssh-key 3207915 --user-data-from-file cloud-init + +info "Get IP" +IP=$(${SCRIPTDIR}/hcloud server list -o columns=ipv4 -o noheader -l server=jitsi) + +info "Sed it on dns" +sed -i "s/#- meet.dryusdan.net./ - meet 300 IN A ${IP}/" /home/ansible/Ansible/host_vars/mul/nsd.yml +echo "${IP}" > ${SCRIPTDIR}/actualIP +cd /home/ansible/Ansible/ +ansible-playbook -i hosts nsd.yml --limit=mul + +info "Wait 128 seconds" +sleep 128 + +info "Connect on server and run Docker" +ssh -o StrictHostKeyChecking=no root@${IP} "cd /root/jitsi; docker-compose up -d" diff --git a/remove.sh b/remove.sh new file mode 100644 index 0000000..80d3aea --- /dev/null +++ b/remove.sh @@ -0,0 +1,50 @@ +#!/bin/bash +## author : Dryusdan +## date : 15/02/2020 +## description : A MySQL dumper +## usage : ./mysqlbackup.sh /BASE/BACKUP/FOLDER RETENTION USERNAME PASSWORD HOST + +## Bash strict mode #################################### +set -o errexit # abort on nonzero exitstatus +set -o pipefail # don't hide errors within pipes + +#set -o nounset # abort on unbound variable + +## Bash color ########################################## +# Set colors +RED='\033[0;31m' +GREEN='\033[00;32m' +YELLOW='\033[00;33m' +BLUE='\033[00;34m' +PURPLE='\033[00;35m' +CYAN='\033[00;36m' +LIGHTGRAY='\033[00;37m' +LRED='\033[01;31m' +LGREEN='\033[01;32m' +LYELLOW='\033[01;33m' +LBLUE='\033[01;34m' +LPURPLE='\033[01;35m' +LCYAN='\033[01;36m' +WHITE='\033[01;37m' +NC='\033[0m' # No Color + +## Logs ################################################ +readonly SCRIPTNAME="$(basename "$0")" +readonly SCRIPTDIR=$(pwd) +info() { echo -e "${LBLUE}[INFO] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +warning() { echo -e "${YELLOW}[WARNING] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +error() { echo -e "${LRED}[ERROR] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +fatal() { echo -e "${RED}[FATAL] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; exit 1 ; } + +## Script ############################################# +info "Create VM" +${SCRIPTDIR}/hcloud server delete jitsi-tst + +info "Get IP" +IP=$(cat ${SCRIPTDIR}/actualIP) + +info "Sed it on dns" +sed -i "s/ - meet 300 IN A ${IP}/#- meet.dryusdan.net./" /home/ansible/Ansible/host_vars/mul/nsd.yml +echo "${IP}" > ${SCRIPTDIR}/actualIP +cd /home/ansible/Ansible/ +ansible-playbook -i hosts nsd.yml --limit=mul