diff --git a/.gitmodules b/.gitmodules index 896975128f438e65424054cbb626baa126693a75..1ed4785924557fed08afd62336de94c9d4247505 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,6 @@ [submodule "provisioning/roles/docker"] path = provisioning/roles/docker url = https://gitlab.ics.muni.cz/CSIRT-MU-PUBLIC/ansible-roles/docker +[submodule "provisioning/roles/guacamole"] + path = provisioning/roles/guacamole + url = ../guacamole diff --git a/provisioning/playbook.yml b/provisioning/playbook.yml index 600325569313d4839cc39c31a06bc7ee7c7cb1c5..f417adb62e36e457cbb95f8213b1c0d683b7122a 100644 --- a/provisioning/playbook.yml +++ b/provisioning/playbook.yml @@ -34,68 +34,8 @@ strategy: free gather_facts: no become: yes - - tasks: - - name: Check if guacd compiled from source code exists - stat: path=/etc/init.d/guacd - register: compiled_guacd_status - - - name: Check if guacd installed by apt exists - stat: path=/etc/default/guacd - register: apt_guacd_status - - - set_fact: - error: "no" - - - name: Try to install guacd by apt - block - block: - - name: Install guacd - apt: - name: guacd - register: result - when: not apt_guacd_status.stat.exists - - - set_fact: - error: "yes" - when: result.failed - - when: (not compiled_guacd_status.stat.exists) and (not apt_guacd_status.stat.exists) - ignore_errors: yes - - - name: Configure guacd if it was installed by apt - block - block: - - name: Change default listening address of guacd - lineinfile: - path: /etc/default/guacd - regexp: LISTEN_ADDRESS=.* - line: LISTEN_ADDRESS={{ hostvars["man"]["kypo_global_sandbox_ip"] }} - - - name: Restart guacd.service - systemd: - state: restarted - daemon_reload: yes - name: guacd - - when: apt_guacd_status.stat.exists or ((not compiled_guacd_status.stat.exists) and (not error)) - 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.5.0/source/guacamole-server-1.5.0.tar.gz -P /tmp/ - sudo tar -xzf /tmp/guacamole-server-1.5.0.tar.gz -C /opt - sudo rm /tmp/guacamole-server-1.5.0.tar.gz - cd /opt/guacamole-server-1.5.0 - sudo /opt/guacamole-server-1.5.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 compiled_guacd_status.stat.exists) and error + roles: + - guacamole - name: NAT on MAN node hosts: man diff --git a/provisioning/roles/guacamole b/provisioning/roles/guacamole new file mode 160000 index 0000000000000000000000000000000000000000..896b206dc049d993c77fb298633865848ffa102d --- /dev/null +++ b/provisioning/roles/guacamole @@ -0,0 +1 @@ +Subproject commit 896b206dc049d993c77fb298633865848ffa102d