xenorchestra_installer/ansible/xoa-role/tasks/main.yml

251 lines
4.8 KiB
YAML
Raw Normal View History

- name: Updating packages
shell: apt-get update -y && apt-get upgrade -y
when: ansible_distribution == 'Debian'
ignore_errors: True
args:
warn: no
notify: cleaning_packages_metadata
tags:
- install
- update
- name: Installing packages
package: name={{item}} state=present
when: ansible_distribution == 'Debian'
with_items:
- curl
- git
notify: cleaning_packages_metadata
tags:
- install
- update
- name: Check if xoa is already installed
stat:
path: /opt/xen-orchestra
register: xen_orchestra_directory
tags:
- install
- update
- name: Ensure group xoa exists
ansible.builtin.group:
name: xoa
state: present
tags:
- install
- update
- name: Check if xoa is already registered in sudoers.d
stat:
path: /etc/sudoers.d/xoa
register: xoa_sudoers_file
tags:
- install
- update
- name: Add the xoa user
ansible.builtin.user:
name: xoa
shell: /bin/bash
home: /home/xoa
comment: xen-orchestra user
uid: 1040
groups: xoa,users
append: yes
when: not xoa_sudoers_file.stat.exists
tags:
- install
- update
- name: Register xoa in sudoers.d
ansible.builtin.file:
path: /etc/sudoers.d/xoa
owner: root
group: root
mode: '0640'
when: not xoa_sudoers_file.stat.exists
tags:
- install
- update
- name: Allow xoa to have passwordless sudo
lineinfile:
dest: /etc/sudoers.d/xoa
state: present
regexp: '^%xoa'
line: '%xoa ALL=(ALL) NOPASSWD: ALL'
tags:
- install
- update
- name: Setting git user email
git_config:
name: user.email
scope: global
value: "{{git_email}}"
tags:
- install
- update
- name: Setting git user
git_config:
name: user.name
scope: global
value: "{{git_user}}"
tags:
- install
- update
- name: Download installation script
ansible.builtin.get_url:
url: "{{xoa_install_url}}"
dest: "/tmp/{{xoa_install_script}}"
mode: '0770'
when: not xen_orchestra_directory.stat.exists
tags:
- install
- update
- name: Download update script
ansible.builtin.get_url:
url: "{{xoa_update_url}}"
dest: "/home/xoa/{{xoa_update_script}}"
mode: '0770'
tags:
- install
- update
- name: Create symbolic link to
file:
src: "/home/xoa/{{xoa_update_script}}"
dest: "/etc/cron.weekly/{{xoa_update_script}}"
state: link
tags:
- install
- update
- name: Removing existing data structures
shell: "rm -R /var/lib/xo-server"
ignore_errors: False
args:
warn: no
when: not xen_orchestra_directory.stat.exists
tags:
- install
- name: Removing existing data structures
shell: "rm -R /var/lib/xo-updater"
ignore_errors: False
args:
warn: no
when: not xen_orchestra_directory.stat.exists
tags:
- install
- name: Removing existing redis data
shell: "redis-cli -n 0 FLUSHALL"
ignore_errors: False
args:
warn: no
when: not xen_orchestra_directory.stat.exists
tags:
- install
- name: Installing
shell: "/tmp/{{xoa_install_script}}"
ignore_errors: False
args:
warn: no
when: not xen_orchestra_directory.stat.exists
tags:
- install
- update
- name: Updating
shell: "/home/xoa/{{xoa_update_script}} -n stable"
ignore_errors: False
args:
warn: no
when: xen_orchestra_directory.stat.exists
tags:
- install
- update
- name: Installing xo-cli
shell: "npm install -g xo-cli"
ignore_errors: False
args:
warn: no
tags:
- add-servers
- install
- update
- name: Closing existing session using xo-cli
shell: "xo-cli --unregister"
ignore_errors: True
args:
warn: no
tags:
- add-servers
- install
- update
- name: Opening session using xo-cli
shell: "xo-cli --register --au http://127.0.0.1 {{xoa_default_user}} {{xoa_default_password}}"
ignore_errors: False
args:
warn: no
tags:
- install
- name: Adding user session using xo-cli
shell: "xo-cli user.create email='{{xoa_user}}' password='{{xoa_password}}' permission='admin'"
ignore_errors: False
args:
warn: no
tags:
- install
- name: Closing existing session using xo-cli
shell: "xo-cli --unregister"
ignore_errors: True
args:
warn: no
tags:
- add-servers
- install
- update
- name: Opening session using xo-cli
shell: "xo-cli --register --au http://127.0.0.1 {{xoa_user}} {{xoa_password}}"
ignore_errors: False
args:
warn: no
tags:
- add-servers
- install
- update
- name: Adding xcp-ng servers using xo-cli
shell: "xo-cli server.add label='{{item.label}}' host='{{item.ip}}' username={{xcpng_user}} password='{{xcpng_password}}' autoConnect=true allowUnauthorized=true"
ignore_errors: False
with_items: "{{xcpng_servers}}"
args:
warn: no
tags:
- add-servers
- install
- update
- name: Closing session using xo-cli
shell: "xo-cli --unregister"
ignore_errors: False
args:
warn: no
tags:
- add-servers
- install
- update