diff --git a/README.md b/README.md index a2a35cc..e6ae572 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ Supported Linux distributions and versions: - Ubuntu 22.04 - Ubuntu 20.04 -NOTE: RHEL based distros cannot do file level restore from backups in XO due to missing libvhdi-tools. See: https://github.com/ronivay/XenOrchestraInstallerUpdater/issues/256 +NOTE: By default, libvhdi-tools is not installed on RHEL based distros; so file-level restores from delta backups within XO will not work. However, users MAY install libvhdi-tools via a small, third-party maintained by a user of XenOrchestraInstallerUpdater specifically for XenOrchestraInstallerUpdater in order to re-enable file-level restore. To do so, set the INSTALL_EL_LIBVHDI variable to "true" in xo-install.cfg. See: https://github.com/ronivay/XenOrchestraInstallerUpdater/pull/274 Only x86_64 architecture is supported. For all those raspberry pi users out there, check [container](https://hub.docker.com/r/ronivay/xen-orchestra) instead. diff --git a/sample.xo-install.cfg b/sample.xo-install.cfg index 67b86b7..627b865 100644 --- a/sample.xo-install.cfg +++ b/sample.xo-install.cfg @@ -121,6 +121,14 @@ PRESERVE="3" # default: true #INSTALL_REPOS="true" +# If set to true, this will install a small third-party copr repository necessary to install the libvhdi and libvhdi-tools rpms as-well-as the libvhdi and libvhdi-tools rpms. +# If set to false, this repository and the corresponding libvhdi and libvhdi-tools rpms will not be installed. As as result, file-level restore from delta backups within XO will NOT work. +# This is specific to Redhat/RockyLinux/AlmaLinux installs ONLY. +# Note that INSTALL_REPOS must also be set to "true" for the copr repository to be enabled. +# options: true/false +# default: false +#INSTALL_EL_LIBVHDI="false" + # Send xo-server logs to remote syslog # syntax is: ://: # supported protocols are udp and tcp diff --git a/xo-install.sh b/xo-install.sh index d925dee..9c43d28 100755 --- a/xo-install.sh +++ b/xo-install.sh @@ -49,6 +49,7 @@ ACME_EMAIL="${ACME_EMAIL:-""}" ACME_CA="${ACME_CA:-"letsencrypt/production"}" USESUDO="${USESUDO:-"false"}" GENSUDO="${GENSUDO:-"false"}" +INSTALL_EL_LIBVHDI="${INSTALL_EL_LIBVHDI:-"false"}" INSTALL_REPOS="${INSTALL_REPOS:-"true"}" SYSLOG_TARGET="${SYSLOG_TARGET:-""}" YARN_CACHE_CLEANUP="${YARN_CACHE_CLEANUP:-"false"}" @@ -244,20 +245,17 @@ function InstallDependenciesRPM { printok "Installing yarn" fi - # Disabled for now due to forensics.cert.org going away - # only install libvhdi-tools if vhdimount is not present - # if [[ -z $(runcmd_stdout "command -v vhdimount") ]]; then - # echo - # printprog "Installing libvhdi-tools" - # if [[ "$INSTALL_REPOS" == "true" ]]; then - # runcmd "rpm -ivh https://forensics.cert.org/cert-forensics-tools-release-el${OSVERSION}.rpm" - # runcmd "sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/cert-forensics-tools.repo" - # runcmd "dnf --enablerepo=forensics install -y libvhdi-tools" - # else - # runcmd "dnf install -y libvhdi-tools" - # fi - # printok "Installing libvhdi-tools" - # fi + # Only install libvhdi-tools if vhdimount is not present + if [[ -z $(runcmd_stdout "command -v vhdimount") ]]; then + echo + printprog "Installing libvhdi-tools" + if [[ "$INSTALL_REPOS" == "true" ]] && [[ "$INSTALL_EL_LIBVHDI" == "true" ]]; then + runcmd "dnf copr enable -y bnerickson/libvhdi" + fi + + runcmd "dnf install -y libvhdi-tools" + printok "Installing libvhdi-tools" + fi echo printprog "Enabling and starting redis service"