diff --git a/provisioning/playbook.yml b/provisioning/playbook.yml index 4e5dc2563b4063666fa49a0ef7d9c0442dc0d427..b4439f171d3a4bcae06480e34bb5c03a487d1a82 100644 --- a/provisioning/playbook.yml +++ b/provisioning/playbook.yml @@ -40,24 +40,53 @@ stat: path=/etc/init.d/guacd register: guacd_status + - set_fact: + error: "no" + - name: Install guacd block block: - name: Install guacd apt: name: guacd + register: result + - set_fact: + error: "yes" + when: result.failed - name: Change default listening address of guacd lineinfile: path: /etc/default/guacd regexp: LISTEN_ADDRESS=.* line: LISTEN_ADDRESS={{ hostvars["man"]["kypo_global_sandbox_ip"] }} + when: not error - name: Restart guacd.service systemd: state: restarted daemon_reload: yes name: guacd + when: not error + when: not guacd_status.stat.exists + ignore_errors: yes + + - name: Fallback - Install guacd on man and start it (source code compilation) + shell: | + sudo apt-get update + sudo apt-get install -y make gcc g++ libcairo2-dev libjpeg62-turbo-dev libpng-dev libtool-bin uuid-dev libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev libssl-dev libvorbis-dev libwebp-dev libpulse-dev libwebsockets-dev freerdp2-dev + sudo wget https://dlcdn.apache.org/guacamole/1.4.0/source/guacamole-server-1.4.0.tar.gz -P /tmp/ + sudo tar -xzf /tmp/guacamole-server-1.4.0.tar.gz -C /opt + sudo rm /tmp/guacamole-server-1.4.0.tar.gz + cd /opt/guacamole-server-1.4.0 + sudo /opt/guacamole-server-1.4.0/configure --with-init-dir=/etc/init.d --enable-allow-freerdp-snapshots + sudo make + sudo make install + sudo ldconfig + sudo sed -i 's/getpid > \/dev\/null || $exec -p "$pidfile"/getpid > \/dev\/null || $exec -p "$pidfile" -b 0.0.0.0/' /etc/init.d/guacd + sudo systemctl daemon-reload + sudo systemctl start guacd + sudo systemctl enable guacd + when: (not guacd_status.stat.exists) and error - name: NAT on MAN node hosts: man