- name: Install dependencies ansible.builtin.apt: name: "{{ item }}" state: present install_recommends: false loop: "{{ web_manager.dependencies }}" - name: Install Python 2.7 ansible.builtin.include_tasks: file: python.yml - name: Clone Ganeti Web Manager ansible.builtin.git: repo: "https://github.com/osuosl/ganeti_webmgr.git" dest: "/tmp/ganeti_webmgr" force: true version: "{{ web_manager.version }}" - name: Create virtualenv for Ganeti Web Manager ansible.builtin.command: cmd: bash -c "python -m pip install virtualenv && python -m virtualenv /opt/ganeti_webmgr" register: venv_result changed_when: venv_result.rc == 0 - name: Fix Ganeti Web Manager setup script ansible.builtin.replace: path: "/tmp/ganeti_webmgr/scripts/setup.sh" regexp: "(--use-wheel)|(--setuptools)|(--no-site-packages)" replace: "" - name: Install Ganeti Web Manager ansible.builtin.command: cmd: ./scripts/setup.sh -D sqlite -N -u register: setup_result changed_when: setup_result.rc == 0 args: chdir: "/tmp/ganeti_webmgr" - name: Configure Ganeti Web Manager ansible.builtin.template: src: "config.yml.j2" dest: "/opt/ganeti_webmgr/config/config.yml" mode: "0644" vars: secret_key: "{{ lookup('ansible.builtin.password', '/dev/null', chars=['ascii_letters', 'digits'], length=32) }}" web_mgr_api_key: "{{ lookup('ansible.builtin.password', '/dev/null', chars=['ascii_letters', 'digits'], length=32) }}" - name: Install VNCAuthProxy systemd service ansible.builtin.copy: src: "/tmp/ganeti_webmgr/scripts/vncauthproxy/init-systemd" dest: "/lib/systemd/system/vncauthproxy.service" mode: "0644" remote_src: true - name: Enable VNCAuthProxy systemd service ansible.builtin.systemd_service: daemon_reload: true name: vncauthproxy enabled: true state: restarted - name: Init Ganeti Web Manager ansible.builtin.command: cmd: bash -c "source /opt/ganeti_webmgr/bin/activate && export DJANGO_SETTINGS_MODULE=ganeti_webmgr.ganeti_web.settings && django-admin.py syncdb --migrate && django-admin.py refreshcache" register: init_result changed_when: init_result.rc == 0 - name: Install Ganeti Web Manager systemd service ansible.builtin.template: src: "ganeti-web-manager.service.j2" dest: "/etc/systemd/system/ganeti-web-manager.service" mode: "0644" - name: Enable Ganeti Web Manager ansible.builtin.systemd_service: daemon_reload: true name: ganeti-web-manager enabled: true state: restarted