From f2c414d461e6bff83efc421ef5bbe07a3d5cfdf8 Mon Sep 17 00:00:00 2001 From: Trey Dockendorf Date: Sat, 23 Nov 2024 09:50:55 -0500 Subject: [PATCH] Document OnDemand 4.0 dependency changes and upgrade instructions Fixes #1011 Fixes #1013 Fixes #1010 --- source/installation/install-software.rst | 18 +- source/installation/resource-manager/test.rst | 16 +- source/reference/files/nginx-stage-yml.rst | 14 +- source/release-notes/v4.0-release-notes.rst | 178 ++++++++++++++++++ source/requirements.rst | 6 +- 5 files changed, 196 insertions(+), 36 deletions(-) diff --git a/source/installation/install-software.rst b/source/installation/install-software.rst index 8e228e7f..bac97137 100644 --- a/source/installation/install-software.rst +++ b/source/installation/install-software.rst @@ -5,12 +5,10 @@ Install Software Open OnDemand uses these packages, among many others. -- `Apache HTTP Server 2.4`_ -- Ruby 3.0 with :command:`rake`, :command:`bundler`, and development +- Apache HTTP Server 2.4 +- Ruby 3.3 with :command:`rake`, :command:`bundler`, and development libraries -- Node.js 18 - -Some operating systems use `Software Collections`_ to satisfy these. +- Node.js 20 .. note:: @@ -39,7 +37,7 @@ Some operating systems use `Software Collections`_ to satisfy these. sudo dnf config-manager --set-enabled powertools sudo dnf install epel-release - sudo dnf module enable ruby:3.1 nodejs:18 + sudo dnf module enable ruby:3.3 nodejs:20 .. tab:: RockyLinux/Alma Linux 9 @@ -47,7 +45,7 @@ Some operating systems use `Software Collections`_ to satisfy these. sudo dnf config-manager --set-enabled crb sudo dnf install epel-release - sudo dnf module enable ruby:3.1 nodejs:18 + sudo dnf module enable ruby:3.3 nodejs:20 .. tab:: RHEL 8 @@ -55,7 +53,7 @@ Some operating systems use `Software Collections`_ to satisfy these. .. code-block:: sh sudo dnf install epel-release - sudo dnf module enable ruby:3.1 nodejs:18 + sudo dnf module enable ruby:3.3 nodejs:20 sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms @@ -64,7 +62,7 @@ Some operating systems use `Software Collections`_ to satisfy these. .. code-block:: sh sudo dnf install epel-release - sudo dnf module enable ruby:3.1 nodejs:18 + sudo dnf module enable ruby:3.3 nodejs:20 sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms 2. Add repository and install @@ -198,6 +196,4 @@ If you'd like a package built for a system that we don't currently support, feel - https://github.com/OSC/ondemand/issues/new -.. _software collections: https://www.softwarecollections.org/en/ -.. _apache http server 2.4: https://www.softwarecollections.org/en/scls/rhscl/httpd24/ .. _ohio supercomputer center: https://www.osc.edu/ diff --git a/source/installation/resource-manager/test.rst b/source/installation/resource-manager/test.rst index 65d1d9d8..9edfad56 100644 --- a/source/installation/resource-manager/test.rst +++ b/source/installation/resource-manager/test.rst @@ -39,13 +39,7 @@ configuration files. ``cluster1``, so you will need to replace it with the name of the cluster you configured): - .. rubric:: If your operating system is CentOS 7 or RHEL 7, run this command: - - .. code-block:: sh - - sudo su $USER -c 'scl enable ondemand -- bin/rake test:jobs:cluster1 RAILS_ENV=production' - - .. rubric:: Otherwise, run this command: + .. rubric:: Run this command: .. code-block:: sh @@ -101,13 +95,7 @@ configuration files. provide these command line arguments as a string with the environment variable ``SUBMIT_ARGS`` as: - .. rubric:: If your operating system is CentOS 7 or RHEL 7, run this command: - - .. code-block:: sh - - sudo su $USER -c 'scl enable ondemand-- bin/rake test:jobs:cluster1 RAILS_ENV=production SUBMIT_ARGS="-A myaccount"' - - .. rubric:: Otherwise, run this command: + .. rubric:: Run this command: .. code-block:: sh diff --git a/source/reference/files/nginx-stage-yml.rst b/source/reference/files/nginx-stage-yml.rst index 37d189c5..cd0c6393 100644 --- a/source/reference/files/nginx-stage-yml.rst +++ b/source/reference/files/nginx-stage-yml.rst @@ -180,7 +180,7 @@ Configuration Options the path to the NGINX binary Default - Use NGINX installed by OnDemand Software Collections + Use NGINX installed by OnDemand .. code-block:: yaml @@ -220,7 +220,7 @@ Configuration Options the path to the system-installed NGINX ``mime.types`` file Default - Use the NGINX installed by OnDemand Software Collections file + Use the NGINX installed by OnDemand .. code-block:: yaml @@ -238,7 +238,7 @@ Configuration Options the ``locations.ini`` file that describes Passenger installation Default - Use the file supplied by Passenger from OnDemand Software Collections + Use the file supplied by Passenger from OnDemand .. code-block:: yaml @@ -263,11 +263,11 @@ Configuration Options passenger_ruby: "/opt/ood/nginx_stage/bin/ruby" Example - Use the binary supplied by Ruby 2.4 installed by Software Collections + Use the system installed Ruby .. code-block:: yaml - passenger_ruby: "/opt/rh/rh-ruby25/root/usr/bin/ruby" + passenger_ruby: "/usr/bin/ruby" .. describe:: passenger_nodejs (String, null) @@ -281,11 +281,11 @@ Configuration Options passenger_nodejs: "/opt/ood/nginx_stage/bin/node" Example - Use the binary supplied by Node.js installed by Software Collections + Use the system installed Node.js .. code-block:: yaml - passenger_nodejs: "/opt/rh/rh-nodejs6/root/usr/bin/node" + passenger_nodejs: "/usr/bin/node" .. describe:: passenger_python (String, null) diff --git a/source/release-notes/v4.0-release-notes.rst b/source/release-notes/v4.0-release-notes.rst index 3d245497..f04124bc 100644 --- a/source/release-notes/v4.0-release-notes.rst +++ b/source/release-notes/v4.0-release-notes.rst @@ -7,6 +7,8 @@ Administrative changes ---------------------- - `Breaking Changes`_ +- `Dependency updates`_ +- `Upgrade directions`_ New Features ------------ @@ -16,6 +18,7 @@ New Features - `Batch connect sessions poll delay`_ - `System Status application`_ - `User mapping now accepts UIDs` +- `Remove runtime dependency on SCL` Thanks! ------- @@ -95,7 +98,21 @@ for more details. Dependency updates .................. +This release updates the following dependencies: +- Ruby 3.3 **(RHEL 8 & 9 only)** + + .. warning:: The change in Ruby version means any Ruby based apps that are not provided by the OnDemand RPM must be rebuilt or supply their own ``bin/ruby`` to use the older version of ruby. + +- NodeJS 20 **(All OSes)** + + .. warning:: The change in Node version means any Node based apps that are not provided by the OnDemand RPM must be rebuilt. + + .. warning:: Ubuntu 24.04 and Debian 12 are no longer support on ppc64le due to NodeJS 20 not being available on that architecture. + +- Passenger 6.0.23 +- NGINX 1.26.1 +- ondemand-dex 2.41.1 SELinux changes ............... @@ -104,7 +121,160 @@ SELinux changes Upgrade directions .................. +.. warning:: + + **Update** the **development** or **test** instances of OnDemand installed at your center **first** before you modify the *production* instance. + +.. warning:: + + The OnDemand upgrade has only been tested going from 3.1.x to 4.0.x. + +#. Update OnDemand repository + + .. tabs:: + + .. tab:: RedHat/Rocky Linux/AlmaLinux 8 + + .. code-block:: sh + + sudo yum install -y https://yum.osc.edu/ondemand/4.0/ondemand-release-web-4.0-1.el8.noarch.rpm + + .. tab:: RedHat/Rocky Linux/AlmaLinux 9 + + .. code-block:: sh + + sudo yum install -y https://yum.osc.edu/ondemand/4.0/ondemand-release-web-4.0-1.el9.noarch.rpm + + .. tab:: Ubuntu 20.04 + + .. code-block:: sh + + wget -O /tmp/ondemand-release-web_4.0.0-focal_all.deb https://apt.osc.edu/ondemand/4.0/ondemand-release-web_4.0.0-focal_all.deb + sudo apt install /tmp/ondemand-release-web_4.0.0-focal_all.deb + sudo apt update + + .. tab:: Ubuntu 22.04 + + .. code-block:: sh + + wget -O /tmp/ondemand-release-web_4.0.0-jammy_all.deb https://apt.osc.edu/ondemand/4.0/ondemand-release-web_4.0.0-jammy_all.deb + sudo apt install /tmp/ondemand-release-web_4.0.0-jammy_all.deb + sudo apt update + + .. tab:: Ubuntu 24.04 + + .. code-block:: sh + + wget -O /tmp/ondemand-release-web_4.0.0-noble_all.deb https://apt.osc.edu/ondemand/4.0/ondemand-release-web_4.0.0-noble_all.deb + sudo apt install /tmp/ondemand-release-web_4.0.0-noble_all.deb + sudo apt update + + .. tab:: Debian 12 + + .. code-block:: sh + + wget -O /tmp/ondemand-release-web_4.0.0-bookworm_all.deb https://apt.osc.edu/ondemand/4.0/ondemand-release-web_4.0.0-bookworm_all.deb + sudo apt install /tmp/ondemand-release-web_4.0.0-bookworm_all.deb + sudo apt update + + .. tab:: Amazon Linux 2023 + + .. code-block:: sh + + sudo dnf install -y https://yum.osc.edu/ondemand/4.0/ondemand-release-web-4.0-1.amzn2023.noarch.rpm + +#. Enable dependency repos + + **RHEL/Rocky/AlmaLinux 8 & 9 only** + + .. code-block:: sh + + sudo dnf module reset nodejs + sudo dnf module enable nodejs:20 + sudo dnf module reset ruby + sudo dnf module enable ruby:3.3 + +#. Update OnDemand + + .. tabs:: + + .. tab:: yum/dnf + + .. code-block:: sh + sudo yum clean all + sudo yum update ondemand + + .. tab:: apt + + .. code-block:: sh + + sudo apt-get --only-upgrade install ondemand + +#. (Optional) If using Dex based authentiction, update the ``ondemand-dex`` package. + + .. tabs:: + + .. tab:: yum/dnf + + .. code-block:: sh + + sudo yum update ondemand-dex + + + .. tab:: apt + + .. code-block:: sh + + sudo apt-get --only-upgrade install ondemand-dex + +#. Update Apache configuration and restart Apache. + + .. code-block:: sh + + sudo /opt/ood/ood-portal-generator/sbin/update_ood_portal + + .. tabs:: + + .. tab:: RedHat/Rocky Linux/AlmaLinux 8 & 9 + + .. code-block:: sh + + sudo systemctl try-restart httpd + + .. tab:: Ubuntu 20.04 & 22.04 & Debian 12 + + .. code-block:: sh + + sudo systemctl try-restart apache2 + + .. tab:: Amazon 2023 + + .. code-block:: sh + + sudo systemctl try-restart httpd + +#. (Optional) If ``ondemand-dex`` was installed, restart the ``ondemand-dex`` service. + + .. code-block:: sh + + sudo systemctl try-restart ondemand-dex.service + +#. (Optional) If ``ondemand-selinux`` was installed, see :ref:`ood_selinux_updates` + +#. Force all PUNs to restart + + .. code-block:: sh + + sudo /opt/ood/nginx_stage/sbin/nginx_stage nginx_clean -f + +#. (Optional) Remove old dependencies from prior versions of OOD if they are not used by other applications. + + **RHEL/Rocky/AlmaLinux 8 & 9 only** + + .. code-block:: sh + + sudo dnf remove environment-modules scl-utils Details of new features ----------------------- @@ -167,3 +337,11 @@ User mapping now accepts UIDs User mapping scripts can now return a UID instead of a username. This can be helpful for centers that have multiple domains and possible username collisions. + +Remove runtime dependency on SCL +................................ + +OnDemand no longer requires SCL on RHEL based systems. +OnDemand also no longer has an indirect dependency on the TCL environment module packages. +This removal of the SCL dependency should make it possible to install OnDemand on hosts such +as a head node where the Lmod environment modules are setup. diff --git a/source/requirements.rst b/source/requirements.rst index 4a62a535..c7ef5b63 100644 --- a/source/requirements.rst +++ b/source/requirements.rst @@ -21,8 +21,8 @@ At this time OnDemand only supports the following operating systems and architec "RedHat/Rocky Linux/AlmaLinux 9",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅` "Ubuntu 20.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌` "Ubuntu 22.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌` - "Ubuntu 24.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅` - "Debian 12",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`✅` + "Ubuntu 24.04",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌` + "Debian 12",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌` "Amazon Linux 2023",:raw-html:`✅`,:raw-html:`✅`,:raw-html:`❌` Software Requirements @@ -30,13 +30,11 @@ Software Requirements On the Web node serving OnDemand itself: -- `Software Collections repositories`_ - `lsof`_ - `sudo`_ - `OnDemand repository`_: - ondemand-{{ondemand_version}}-1.el7.x86_64.rpm -.. _Software Collections repositories: https://www.softwarecollections.org/en/ .. _lsof: https://en.wikipedia.org/wiki/Lsof .. _OnDemand repository: https://openondemand.org/ .. _sudo: https://www.sudo.ws/