27 Commits

Author SHA1 Message Date
David R_
f896d80241 Merge 53a0132680 into 47bd62ec0a 2025-02-11 16:22:17 -05:00
Dustin B
47bd62ec0a Update README.md
URL update to current documentation
2025-01-06 16:40:53 -05:00
Dan Pollak
c092780246 Node 18 is no longer a requirement (#126) 2024-06-21 17:00:09 -05:00
Dustin B
5a04a2aed6 Update README.md
Removal of the prepackaged installation, with XOlite around the corner a minimized installation won't be required when released.
2024-02-09 15:45:44 -05:00
David R_
53a0132680 Ansible role for XOA installation or update using sources 2024-01-22 10:23:36 +01:00
Dustin B
bfc606a207 Merge pull request #122 from Jarli01/dp_sudo
Remove remaining `sudo` instances
2024-01-05 11:47:17 -05:00
Dan Pollak
95c80ae455 Remove sudo 2024-01-05 07:18:27 -06:00
Dan Pollak
d12423d78c Node LTS >> Node 18 2023-11-03 19:53:27 -05:00
Dan Pollak
910e9c2cae Update steps to install 2022-11-07 09:09:57 -06:00
Dan Pollak
b8382da30d Update yarn install (#106) 2022-06-06 10:33:23 -05:00
Dustin B
b1272516b9 Update README.md
Sorting out credentials issue with prepackaged installation.
2022-02-28 10:35:38 -05:00
Dustin B
91869f1d73 Merge pull request #98 from Jarli01/Danp2-patch-1
Remove existing service file, approved
2021-07-02 11:44:10 -04:00
Dan Pollak
0cebde394a Remove existing service file 2021-07-02 08:39:54 -05:00
Dustin B
efb9114bcc Update xoce-import.sh 2021-06-16 06:19:10 -04:00
Dustin B
99a4ee7590 Update README.md 2021-06-16 06:18:47 -04:00
Dan Pollak
4ed35c8fa3 Fix: Update launched module (#94) 2021-05-20 11:01:59 -05:00
Dustin B
722080371c Update README.md
Separate lines for the checksums
2021-01-19 11:06:32 -05:00
Dustin B
1e38e80b20 Update README.md 2021-01-12 09:14:54 -05:00
Dustin B
8779dd628d Update README.md 2021-01-12 09:14:23 -05:00
Dustin B
f61fdcdff3 Update README.md
Added details regarding the XOCE updater to the readme
2021-01-12 09:11:58 -05:00
Dustin B
b7638ef28f Update xoce-import.sh
Chore: translation clarifications
2020-12-21 15:25:56 -05:00
Dustin B
095c7baf3c Merge pull request #91 from Jarli01/dp-python3
Switch to Python3
2020-12-16 21:16:19 -05:00
Dan Pollak
b9815e4271 Revert "Use python-minimal"
This reverts commit bd6fcddf04.
2020-12-15 14:06:26 -06:00
Dan Pollak
bd6fcddf04 Use python-minimal 2020-12-15 13:56:53 -06:00
Dan Pollak
1a19441859 Chore: Switch to Python3 2020-12-14 12:27:46 -06:00
Dustin B
7d07d1ba9f Update README.md
Corrected checksums for the current XOCE prepackaged build.
2020-08-01 11:32:35 -04:00
Dustin B
8e8a3148c6 Update README.md 2020-07-30 08:48:27 -04:00
10 changed files with 378 additions and 39 deletions

View File

@@ -23,8 +23,8 @@ Xen-Orchestra (Community Edition) allows you to administer Citrix Hypervisor (ak
Run the following steps from a root shell on your **Ubuntu or Debian** host.
curl https://raw.githubusercontent.com/Jarli01/xenorchestra_installer/master/xo_install.sh | sudo bash
<password>
sudo bash
bash -c "$(curl https://raw.githubusercontent.com/Jarli01/xenorchestra_installer/master/xo_install.sh)"
The default username and password are applied, admin@admin.net and admin for the password
@@ -33,29 +33,13 @@ If you don't want NFS capabilities run ```sudo apt-get remove nfs-common```.
* Do not use LAMP
* SSH Access is optional, but highly recommended
## Updates
To maintain your installation from Source or from this repo. (either prepackaged or scripted installation) we recommend using the update script which this community maintains. This can be [found here](https://github.com/Jarli01/xenorchestra_updater) and doesn't require you to download or install a separate package to your XOCE installation. Simply run it via shell session of your XOCE host.
# Declarations
This script automates the manual process which can be [found here](https://xen-orchestra.com/docs/from_the_sources.html) as well as removes a few feature restrictions that otherwise would need to be changed manually if following the manual installation process. This script is not officially supported by the Vates team, but is supported by this community.
# Prepacked installation
* *This is a very small installation and while it will operate, it may not meet all of your requirements, use at your own discretion*
To download and deploy a prepacked Ubuntu 20.04 installation of Xen Orchestra (CE) run the below from an SSH session on your XCP-NG/Citrix Hypervisor (XenServer) host(s)
bash -c "$(curl -s https://raw.githubusercontent.com/Jarli01/xenorchestra_installer/master/xoce-import.sh)"
MD5 Checksum `5db537c4b6388a4323583357b6e13d20`
SHA256 Checksum `c487d63f2eef67fcaf0e9c4e4998d4a3948fdad960cb1af5a70fcb80b07c2551`
For verification of SHA256 checksum the XVA file can be downloaded directly and verified/imported.
Direct Download https://srv-file8.gofile.io/download/CYaI0l/XOCE.xva
To login to the console use:
Username: **XOCE**
Password: **XOCE**
**Change the password if you are using this in production**
This script automates the manual process which can be [found here](https://docs.xen-orchestra.com/installation) as well as removes a few feature restrictions that otherwise would need to be changed manually if following the manual installation process. This script is not officially supported by the Vates team, but is supported by this community.
# Self-signed SSL

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

@@ -5,7 +5,7 @@
# Check for required memory
totalk=$(awk '/^MemTotal:/{print $2}' /proc/meminfo)
if [ "$totalk" -lt "3000000" ]; then echo "XOCE Requires at least 3GB Memory!"; exit 1; fi
if [ "$totalk" -lt "2000000" ]; then echo "XOCE Requires at least 2GB Memory!"; exit 1; fi
distro=$(/usr/bin/lsb_release -is)
if [ "$distro" = "Ubuntu" ]; then /usr/bin/add-apt-repository multiverse; fi
@@ -13,7 +13,7 @@ if [ "$distro" = "Ubuntu" ]; then /usr/bin/add-apt-repository multiverse; fi
xo_branch="master"
xo_server="https://github.com/vatesfr/xen-orchestra"
n_repo="https://raw.githubusercontent.com/tj/n/master/bin/n"
yarn_repo="deb https://dl.yarnpkg.com/debian/ stable main"
yarn_repo="deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main"
yarn_gpg="https://dl.yarnpkg.com/debian/pubkey.gpg"
n_location="/usr/local/bin/n"
xo_server_dir="/opt/xen-orchestra"
@@ -27,7 +27,7 @@ xo_service="xo-server.service"
#Install yarn
cd /opt
/usr/bin/curl -sS $yarn_gpg | apt-key add -
/usr/bin/curl -sSL $yarn_gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "$yarn_repo" | tee /etc/apt/sources.list.d/yarn.list
/usr/bin/apt-get update
/usr/bin/apt-get install --yes yarn
@@ -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 python2-minimal libvhdi-utils nfs-common lvm2 cifs-utils
/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
@@ -71,7 +71,9 @@ for source in $(ls -d /opt/xen-orchestra/packages/xo-server-*); do
fi
done
if [[ ! -e $systemd_service_dir/$xo_service ]] ; then
if [[ -e $systemd_service_dir/$xo_service ]] ; then
rm $systemd_service_dir/$xo_service
fi
/bin/cat << EOF >> $systemd_service_dir/$xo_service
# Systemd service for XO-Server.
@@ -82,14 +84,15 @@ After=network-online.target
[Service]
WorkingDirectory=/opt/xen-orchestra/packages/xo-server/
ExecStart=/usr/local/bin/node ./bin/xo-server
ExecStart=/usr/local/bin/node ./dist/cli.mjs
Restart=always
SyslogIdentifier=xo-server
[Install]
WantedBy=multi-user.target
EOF
fi
/bin/systemctl daemon-reload
/bin/systemctl enable $xo_service

View File

@@ -1,6 +1,6 @@
#!/bin/bash
XOCE_URL=https://nc.nl.tab.digital/s/5tKYF9AyLjowm3E/download
XOCE_URL=https://nc.nl.tab.digital/s/WQmCwmH4e9EdTTA/download
# Welcome message
printf "\n\033[1mWelcome to the XOCE auto-deploy script!\033[0m\n\n"
@@ -10,7 +10,7 @@ then
echo
echo 'Sorry, the xe command is required for this auto-deploy.'
echo
echo 'Please, make sure you are on a XenServer host.'
echo 'Please, make sure you are on a XCP-ng/XenServer host.'
echo
exit 1
fi
@@ -18,8 +18,8 @@ fi
# Basic check: are we on a XS host?
if grep -Fxq "XenServer" /etc/issue
then
printf "\nSorry, it seems you are not on a XenServer (XCP-ng) host.\n\n"
printf "\n\033[1mThis script is meant to be deployed on XenServer (or XCP-ng) only.\033[0m\n\n"
printf "\nSorry, it seems you are not on a XCP-ng/XenServer host.\n\n"
printf "\n\033[1mThis script is meant to be deployed on XCP-ng or XenServer only.\033[0m\n\n"
exit 1
fi
@@ -36,7 +36,7 @@ then
read -p "dns? [8.8.8.8] " dns
dns=${dns:-8.8.8.8}
else
printf "\nYour XOCE will be started using DHCP\n\n"
printf "\nYour XOCE installation will be started using DHCP\n\n"
fi
# Downloading and importing the VM
@@ -56,7 +56,7 @@ fi
import=$?
if [ $import -ne 0 ]
then
printf "\n\nAuto deploy failed. Please contact us on xen-orchestra.com live chat for assistance.\nError:\n\n %s\n\n" "$uuid"
printf "\n\nAuto deploy failed. Please contact us on https://github.com/Jarli01/xenorchestra_installer/issues for assistance.\nError:\n\n %s\n\n" "$uuid"
exit 0
fi
@@ -75,7 +75,7 @@ sleep 2
# Waiting for the VM IP from Xen tools for 60 secs
printf "Waiting for your XOCE to be ready…\n"
printf "Waiting for XOCE to be ready…\n"
url=$(xe vm-param-get uuid=$uuid param-name=networks param-key=0/ip 2> /dev/null)
wait=0
limit=60
@@ -95,7 +95,7 @@ done
if [ "$ip" != 'dhcp' ]
then
printf "\n\033[1mYour XOCE is ready on https://%s/\033[0m\n" "$ip"
printf "\n\033[1mYour XOCE is ready at https://%s/\033[0m\n" "$ip"
# clean the xenstore data
xe vm-param-remove param-name=xenstore-data param-key=vm-data/dns param-key=vm-data/ip param-key=vm-data/netmask param-key=vm-data/gateway uuid=$uuid
@@ -105,7 +105,7 @@ elif [ -z "$url" ]
then
printf "\n\033[1mYour XOCE booted but we couldn't fetch its IP address\033[0m\n"
else
printf "\n\033[1mYour XOCE is ready on https://%s/\033[0m\n" "$url"
printf "\n\033[1mYour XOCE is ready at https://%s/\033[0m\n" "$url"
fi
printf "\nDefault UI credentials: admin@admin.net/admin\nDefault console credentials: xoce/xoce\n"
printf "\nVM UUID: %s\n\n" "$uuid"