2 Commits

Author SHA1 Message Date
David R_
f896d80241 Merge 53a0132680 into 47bd62ec0a 2025-02-11 16:22:17 -05:00
David R_
53a0132680 Ansible role for XOA installation or update using sources 2024-01-22 10:23:36 +01:00
9 changed files with 353 additions and 33 deletions

View File

@@ -65,33 +65,6 @@ Restart xo-server.service
Reload your XOCE website using SSL (https://your-host-ip)
# Migrating from VMWare ESXi
The optional VMware Virtual Disk Development Kit (VDDK) offers increased performance and additional features when migrating VMs from VMWare ESXi to XCP-ng. This collection must be manually downloaded and installed due to licensing restrictions. Here are the steps for installing this optional module --
1. Go to https://developer.broadcom.com/sdks/vmware-virtual-disk-development-kit-vddk/latest and download the VDDK #.0 Tarball for Linux (at writing the version is 9.0 and MD5 sum is f508fe7134fcdd137fbdba5ee7f65d9f)
2. Move this file to your XOCE installation (winSCP or some other tool)
3. Create this directory as it doesn't exist with `mkdir /usr/local/lib/vddk` and uncompress the tarball into the same directory with ```sudo tar -xvf "./VMware-vix-disklib-9.0.0.0.24742305.x86_64.tar.gz" -C /usr/local/lib/vddk```
The directory structure should match the below
```
debian@xoa-source:/usr/local/lib/vddk$ tree -d .
└── vmware-vix-disklib-distrib
├── bin64
├── doc
│   ├── errors
│   ├── functions
│   ├── samples
│   │   └── diskLib
│   └── types
├── include
├── lib32
└── lib64
```
4. Lastly install these dependencies ```sudo apt install -y nbdkit libnbd-bin```
You should now have access to the improved features from this VDDK
# Problems?
Check out our [Troubleshooting Page](https://github.com/Jarli01/xenorchestra_installer/blob/master/TROUBLESHOOTING.md)!
@@ -110,9 +83,4 @@ While the goal initially was to have a solution as close to XOA as possible, wit
To keep XOCE up to date I recommend that anyone who's used this installation script or the sources installation to use this: https://github.com/Jarli01/xenorchestra_updater
## Adding XOCE v6 to your installation (this is a Work In Progress by Vates)
cd /opt/xen-orchestra
yarn run turbo run build --filter @xen-orchestra/web
Once the installation is completed, you can then go to [https://your-host-ip/v6](https://your-host-ip/v6)

View File

@@ -0,0 +1,15 @@
# defaults file
# The default username and password are applied, and admin for the password
xoa_install_url: https://raw.githubusercontent.com/Jarli01/xenorchestra_installer/master/xo_install.sh
xoa_install_script: xo_install.sh
xoa_update_url: https://raw.githubusercontent.com/Jarli01/xenorchestra_updater/master/xo-update.sh
xoa_update_script: xo_update.sh
git_email: ""
git_user: ""
xoa_default_user: "admin@admin.net"
xoa_default_password: "admin"
xoa_user: xoa
xoa_password: xoa
xcpng_servers: [{"label": "localhost", "ip": "127.0.1"}]
xcpng_user: root
xcpng_password: xcpng

View File

@@ -0,0 +1,22 @@
- name: reload_systemd
shell: systemctl daemon-reload
args:
warn: no
- name: cleaning_packages_metadata
shell: yum clean all && rm -rf /var/cache/yum
when: ansible_distribution == 'Red Hat Enterprise Linux' or ansible_distribution == 'XCP-ng'
args:
warn: no
- name: cleaning_packages_metadata
shell: zypper clean && rm -rf /var/cache/zypp
when: ansible_distribution == 'openSUSE Leap'
args:
warn: no
- name: cleaning_packages_metadata
shell: apt clean
when: ansible_distribution == 'Debian'
args:
warn: no

View File

@@ -0,0 +1,57 @@
galaxy_info:
author: your name
description: your description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Some suggested licenses:
# - BSD (default)
# - MIT
# - GPLv2
# - GPLv3
# - Apache
# - CC-BY
license: license (GPLv2, CC-BY, etc)
min_ansible_version: 1.2
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
# Optionally specify the branch Galaxy will use when accessing the GitHub
# repo for this role. During role install, if no tags are available,
# Galaxy will use this branch. During import Galaxy will access files on
# this branch. If Travis integration is configured, only notifications for this
# branch will be accepted. Otherwise, in all cases, the repo's default branch
# (usually master) will be used.
#github_branch:
#
# platforms is a list of platforms, and each platform has a name and a list of versions.
#
# platforms:
# - name: Fedora
# versions:
# - all
# - 25
# - name: SomePlatform
# versions:
# - all
# - 1.0
# - 7
# - 99.99
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

View File

@@ -0,0 +1,250 @@
- 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

View File

@@ -0,0 +1,2 @@
localhost

View File

@@ -0,0 +1,4 @@
- hosts: localhost
remote_user: root
roles:
- xoa

View File

@@ -0,0 +1,2 @@
---
# vars file

View File

@@ -43,7 +43,7 @@ n lts
ln -s /usr/bin/node /usr/local/bin/node
# Install XO dependencies
/usr/bin/apt-get install --yes build-essential redis-server libpng-dev git python3-minimal libvhdi-utils nfs-common lvm2 cifs-utils openssl libfuse2t64
/usr/bin/apt-get install --yes build-essential redis-server libpng-dev git python3-minimal libvhdi-utils nfs-common lvm2 cifs-utils
/usr/bin/git clone -b $xo_branch $xo_server