ganeti-ansible/roles/web-manager/tasks/main.yml

100 lines
3.3 KiB
YAML
Raw Permalink Normal View History

2025-02-23 18:07:24 +00:00
- name: Install dependencies
ansible.builtin.apt:
name: "{{ item }}"
state: present
install_recommends: false
loop: "{{ web_manager.dependencies }}"
2025-02-24 00:48:14 +00:00
- name: Check for Python 2
ansible.builtin.command:
cmd: python2 -V
register: python2_version
changed_when: false
failed_when: false
2025-02-23 18:07:24 +00:00
- name: Install Python 2.7
ansible.builtin.include_tasks:
file: python.yml
2025-02-24 00:48:14 +00:00
when: python2_version.rc != 0
2025-02-23 18:07:24 +00:00
- 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 }}"
2025-02-24 00:48:14 +00:00
- name: Link virtualenv for the dumb Ganeti Web Manager setup script
ansible.builtin.file:
state: link
src: /usr/local/bin/virtualenv
dest: /usr/bin/virtualenv
2025-02-23 18:07:24 +00:00
- 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:
2025-02-24 00:48:14 +00:00
cmd: bash -c "source /opt/ganeti_webmgr/bin/activate && export DJANGO_SETTINGS_MODULE=ganeti_webmgr.ganeti_web.settings && django-admin.py syncdb --migrate --noinput && django-admin.py refreshcache"
2025-02-23 18:07:24 +00:00
register: init_result
changed_when: init_result.rc == 0
2025-02-24 00:48:14 +00:00
- name: Add superuser
ansible.builtin.command:
cmd: bash -c "source /opt/ganeti_webmgr/bin/activate && export DJANGO_SETTINGS_MODULE=ganeti_webmgr.ganeti_web.settings && echo -e '{{ web_manager.superuser.password }}\n{{ web_manager.superuser.password }}\n' | django-admin.py createsuperuser --username {{ web_manager.superuser.username }} --email {{ web_manager.superuser.email }}"
register: superuser_result
changed_when: superuser_result.rc == 0
2025-02-23 18:07:24 +00:00
- 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