Skip to content
Snippets Groups Projects
Select Git revision
  • f4346ff96504e31dfb587dfda19a5ead1f8c4d12
  • master default protected
  • devel
  • hruska-feature-clients-api
  • malostik-#5066-deduplicate-idea-ids
  • warden-postgresql-port
  • hruska-feature-#6799-filter-keys
  • hruska-feature-5066-duplicateIdeaID
  • warden-client-3.0-beta3
  • warden-server-3.0-beta3
  • warden-client-2.2-final
  • warden-server-2.2-final
  • warden-client-3.0-beta2
  • warden-server-3.0-beta2
  • warden-client-2.2
  • warden-server-2.2-patch3
  • warden-client-3.0-beta1
  • warden-server-3.0-beta1
  • warden-server-2.2-patch1
  • warden-client-3.0-beta0
  • warden-server-3.0-beta0
  • warden-server-2.2
  • warden-server-2.1-patch1
  • warden-client-2.1
  • warden-server-2.1
  • warden-server-2.1-beta6
  • warden-server-2.1-beta5
  • warden-server-2.1-beta4
28 results

warden_ra.py

Blame
  • Forked from 713 / Warden / Warden - archive
    Source project has a limited visibility.
    deploy.sh 1.91 KiB
    #! /bin/bash -xe
    
    #
    # Example to setup new site with 3rd party nodes
    #
    
    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-dev
    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"
    
    # wait for ping and ssh
    for ip in $(cat terraform/hosts.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/docker-volume.sh dest=/root/ mode=preserve' 'ingress nfs worker'
    ansible -m command -a '/root/docker-volume.sh' 'ingress nfs worker'
    
    # k8s + notebooks
    ansible-playbook playbooks/k8s.yaml
    # ansible-playbook playbooks/squid.yaml
    # ansible-playbook playbooks/cvmfs.yaml
    while ansible -i ./inventory -m command -a 'kubectl get pods --all-namespaces' master | tail -n +3 | grep -v ' Running '; do sleep 5; done