#! /bin/bash -xe # # EOSC LOT3 Jupyter Notebooks testing instance # cd terraform && terraform init && terraform apply cd - cp -pv terraform/inventory.yaml inventory/1-cesnet.yaml # dynamic DNS ip="$(head -n 1 < terraform/fip.txt)" shellstate=$(shopt -po xtrace) set +o xtrace # https://nsupdate.fedcloud.eu vault_prefix=secrets/users/e1662e20-e34b-468c-b0ce-d899bc878364@egi.eu/eosc-testing FEDCLOUD_DYNAMIC_DNS=$(vault read -field data $vault_prefix/FEDCLOUD_DYNAMIC_DNS | grep ^map | head -n 1 | sed 's/map\[\(.*\)\]/\1/') for auth in $FEDCLOUD_DYNAMIC_DNS; do echo "curl -i -X GET -u $(echo "$auth" | cut -d: -f1):XXX https://nsupdate.fedcloud.eu/nic/update?myip=$ip" curl -i -X GET -u "$auth" https://nsupdate.fedcloud.eu/nic/update?myip="$ip" done eval "$shellstate" echo "Terraform finished. Check terraform/docker-volume.sh. Continue? (CTRL-C to quit)" read -r _ # wait for ping and ssh for ip in $(cat terraform/hosts.txt) $(cat terraform/fip.txt); do while ! ping -c 1 "$ip"; do sleep 5; done ssh-keygen -R "$ip" while ! ssh egi@"$ip" -o ConnectTimeout=10 -o PreferredAuthentications=publickey -o StrictHostKeyChecking=no :; do sleep 10; done done # check ssh access ansible -m command -a 'uname -a' allnodes # wait cloud-init ansible -m shell -a 'while ! test -f /var/lib/cloud/instance/boot-finished; do sleep 2; done' allnodes # setup volumes ansible -m copy -a 'src=terraform/nfs-volume.sh dest=/root/ mode=preserve' nfs ansible -m command -a '/root/nfs-volume.sh' nfs ansible -m copy -a 'src=terraform/squid-volume.sh dest=/root/ mode=preserve' 'ingress[0]' ansible -m command -a '/root/squid-volume.sh' 'ingress[0]' ansible -m copy -a 'src=terraform/scratch-volume.sh dest=/root/ mode=preserve' 'ingress nfs worker gpu' ansible -m command -a '/root/scratch-volume.sh' 'ingress nfs worker gpu' # kubernetes ansible-playbook playbooks/k8s.yaml while ansible -m command -a 'kubectl get pods --all-namespaces' master | tail -n +3 | grep -Ev ' (Running|Completed) '; do sleep 5; done # docker runtime directory after Kubernetes deployment (problem with unmounts) ansible -m copy -a 'src=terraform/docker-volume.sh dest=/root/ mode=preserve' 'ingress nfs worker gpu' ansible -m command -a '/root/docker-volume.sh' 'ingress nfs worker gpu' ansible-playbook playbooks/squid.yaml ansible-playbook playbooks/cvmfs.yaml # wait for finish while ansible -m command -a 'kubectl get pods --all-namespaces' master | tail -n +3 | grep -Ev ' (Running|Completed) '; do sleep 5; done ansible-playbook playbooks/security-logs.yaml