80 lines
2.5 KiB
YAML
80 lines
2.5 KiB
YAML
- 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
|