251 lines
4.8 KiB
YAML
251 lines
4.8 KiB
YAML
- 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
|