<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Open OnDemand on</title><link>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/</link><description>Recent content in Open OnDemand on</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 14 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/index.xml" rel="self" type="application/rss+xml"/><item><title>Overview</title><link>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/overview/</link><pubDate>Wed, 14 Oct 2026 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/overview/</guid><description>&lt;p&gt;&lt;a href="https://openondemand.org/"&gt;Open OnDemand&lt;/a&gt; is a web portal for HPC users. The Open OnDemand appliance runs this portal in one VM, connected to your OneSlurm Clusters. Users sign in with their LDAP account and, from a web browser, they can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Manage the files in their home&lt;/li&gt;
&lt;li&gt;Submit jobs and follow them&lt;/li&gt;
&lt;li&gt;Open a terminal on a Cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The appliance is available in the &lt;a href="https://marketplace.opennebula.io/appliance/d3c8ea14-f6f0-455c-8a41-6129affa9a0e"&gt;OpenNebula Public Marketplace&lt;/a&gt;. It uses Ubuntu 26.04 LTS and Open OnDemand 4.2.&lt;/p&gt;</description></item><item><title>Requirements</title><link>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/requirements/</link><pubDate>Wed, 14 Oct 2026 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/requirements/</guid><description>&lt;p&gt;Before you deploy the portal, check that you have the elements in the following table.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;Requirement&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;What the portal needs&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;OneSlurm Clusters&lt;/td&gt;
 &lt;td&gt;One or more Clusters in &lt;code&gt;RUNNING&lt;/code&gt; state, and the IP address of each controller.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LDAP server&lt;/td&gt;
 &lt;td&gt;The LDAP server of the Clusters, with a &lt;code&gt;ldap://&lt;/code&gt; URL.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;NFS export&lt;/td&gt;
 &lt;td&gt;The export with the home directories of the users, for example &lt;code&gt;10.0.0.10:/export/home&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;User homes&lt;/td&gt;
 &lt;td&gt;One home directory for each user on that export, owned by the user, with mode &lt;code&gt;700&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Virtual Network&lt;/td&gt;
 &lt;td&gt;A Virtual Network that reaches the controllers, the LDAP server and the NFS server.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://docs.opennebula.io/7.4/product/operation_references/opennebula_services_configuration/onegate/"&gt;OneGate&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Reachable from that network. The portal publishes its URL and its errors there.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="ldap-details"&gt;
 LDAP Details
 &lt;a class="anchor-link" href="#ldap-details" aria-label="Link to this section"&gt;
 &lt;i class="fas fa-link fa-xs"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Use the same domain as &lt;code&gt;ONEAPP_LDAP_DOMAIN&lt;/code&gt; in OneSlurm. The default is &lt;code&gt;slurm.local&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You can also use a base DN, such as &lt;code&gt;dc=example,dc=org&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Users must be &lt;code&gt;posixAccount&lt;/code&gt; entries under &lt;code&gt;ou=People&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The portal has no bind user, so &lt;strong&gt;the LDAP server must allow anonymous search under &lt;code&gt;ou=People&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The LDAP server of OneSlurm meets all of these points.&lt;/p&gt;</description></item><item><title>Quick Start</title><link>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/quick_start/</link><pubDate>Wed, 14 Oct 2026 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/quick_start/</guid><description>&lt;p&gt;This guide deploys the portal from Sunstone in the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Import the appliance.&lt;/li&gt;
&lt;li&gt;Start the wizard.&lt;/li&gt;
&lt;li&gt;Fill in the user inputs.&lt;/li&gt;
&lt;li&gt;Attach the network of the Clusters.&lt;/li&gt;
&lt;li&gt;Check that the portal is ready.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="step-1-import-the-appliance"&gt;
 Step 1: Import the Appliance
 &lt;a class="anchor-link" href="#step-1-import-the-appliance" aria-label="Link to this section"&gt;
 &lt;i class="fas fa-link fa-xs"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;In Sunstone:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Storage -&amp;gt; Apps&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Search for &lt;strong&gt;Open OnDemand&lt;/strong&gt; and select it.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Import&lt;/strong&gt; and choose the image datastore.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Or, with the CLI on the Front-end:&lt;/p&gt;</description></item><item><title>Operations</title><link>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/operations/</link><pubDate>Wed, 14 Oct 2026 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/operations/</guid><description>&lt;h2 id="use-the-portal"&gt;
 Use the Portal
 &lt;a class="anchor-link" href="#use-the-portal" aria-label="Link to this section"&gt;
 &lt;i class="fas fa-link fa-xs"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Open the address of &lt;code&gt;OOD_URL&lt;/code&gt; in a web browser.&lt;/li&gt;
&lt;li&gt;Accept the certificate warning. The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;Sign in with the LDAP user name and password.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="td-image-wrapper" style="margin-left: auto; margin-right: auto; width: 80%; margin-bottom: 20px;"&gt;
 &lt;img src="https://docs.opennebula.io/7.4/images/slurm/open_ondemand/ood_login_hu_703b94d8f3ad31a1.webp" alt="Login page of Open OnDemand" width="1280" height="760" class="roundBorderImage borderImage shadowImage td-img-light td-img-always"&gt;&lt;/div&gt;
&lt;h3 id="tools-for-users"&gt;
 Tools for Users
 &lt;a class="anchor-link" href="#tools-for-users" aria-label="Link to this section"&gt;
 &lt;i class="fas fa-link fa-xs"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;Menu&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;Tool&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;What users do&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Files&lt;/td&gt;
 &lt;td&gt;Home Directory&lt;/td&gt;
 &lt;td&gt;Browse, upload, download and delete files.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Jobs&lt;/td&gt;
 &lt;td&gt;Active Jobs&lt;/td&gt;
 &lt;td&gt;See their jobs on every Cluster and cancel them.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Jobs&lt;/td&gt;
 &lt;td&gt;Job Composer&lt;/td&gt;
 &lt;td&gt;Create a job from a script or a template and submit it to a Cluster.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Jobs&lt;/td&gt;
 &lt;td&gt;Project Manager&lt;/td&gt;
 &lt;td&gt;Group job scripts in project folders.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Clusters&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt; Shell Access&lt;/td&gt;
 &lt;td&gt;Open a terminal on the controller of a Cluster.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Clusters&lt;/td&gt;
 &lt;td&gt;System Status&lt;/td&gt;
 &lt;td&gt;See the nodes, CPUs and jobs of each Cluster.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The portal has no remote desktop, because the OneSlurm workers have no VNC server.&lt;/p&gt;</description></item><item><title>Troubleshooting and Limitations</title><link>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/troubleshooting/</link><pubDate>Wed, 14 Oct 2026 00:00:00 +0000</pubDate><guid>https://docs.opennebula.io/7.4/platform_services/slurm/integrations/open_ondemand/troubleshooting/</guid><description>&lt;h2 id="troubleshooting"&gt;
 Troubleshooting
 &lt;a class="anchor-link" href="#troubleshooting" aria-label="Link to this section"&gt;
 &lt;i class="fas fa-link fa-xs"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;The following table lists common problems and how to solve them:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;What to do&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;The VM shows &lt;code&gt;OOD_ERROR&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Fix the value or the service named in the message, then reboot the VM. Full log in &lt;code&gt;/var/log/one-appliance/configure.log&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;The browser does not open the portal&lt;/td&gt;
 &lt;td&gt;Check that the VM shows &lt;code&gt;READY=YES&lt;/code&gt; and that your network reaches the IP of &lt;code&gt;OOD_URL&lt;/code&gt; on port 443. Logs: &lt;code&gt;journalctl -u apache2 -u ondemand-dex&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Login fails with the right password&lt;/td&gt;
 &lt;td&gt;The user is not under &lt;code&gt;ou=People&lt;/code&gt;, or LDAP does not answer. Test in the VM with &lt;code&gt;ldapsearch -x -H &amp;lt;URL&amp;gt; -b ou=People,&amp;lt;base DN&amp;gt; uid=&amp;lt;user&amp;gt;&lt;/code&gt;. For &lt;code&gt;slurm.local&lt;/code&gt;, the base DN is &lt;code&gt;dc=slurm,dc=local&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Home directory not found&lt;/td&gt;
 &lt;td&gt;Create the home directory of the user, then click &lt;strong&gt;Restart Web Server&lt;/strong&gt; on that page.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Active Jobs is empty, or &lt;code&gt;Permission denied&lt;/code&gt; in Submit or the terminal&lt;/td&gt;
 &lt;td&gt;Click &lt;strong&gt;Help -&amp;gt; Restart Web Server&lt;/strong&gt;. This adds the key of the user to &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt; again. Logs: &lt;code&gt;journalctl -t ood-prehook&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;System Status shows an error page&lt;/td&gt;
 &lt;td&gt;A controller does not answer. That Cluster shows no jobs, and the Job Composer and the terminal show an SSH error. Everything works again when the controller is back.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Pages load forever with no message&lt;/td&gt;
 &lt;td&gt;The NFS server does not answer. The portal works again by itself when NFS is back. Meanwhile, use the VM console in Sunstone, because SSH to the VM can also hang.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="known-limitations"&gt;
 Known Limitations
 &lt;a class="anchor-link" href="#known-limitations" aria-label="Link to this section"&gt;
 &lt;i class="fas fa-link fa-xs"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;strong&gt;Area&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;Limitation&lt;/strong&gt;&lt;/th&gt;
 &lt;th&gt;&lt;strong&gt;What to do&lt;/strong&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Files&lt;/td&gt;
 &lt;td&gt;Uploads are limited to 256 MiB.&lt;/td&gt;
 &lt;td&gt;Copy bigger files with &lt;code&gt;scp&lt;/code&gt; or &lt;code&gt;rsync&lt;/code&gt; to a Cluster controller, which has the same home.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Terminal&lt;/td&gt;
 &lt;td&gt;The terminal closes when the page reloads.&lt;/td&gt;
 &lt;td&gt;Run long work under &lt;code&gt;tmux&lt;/code&gt; or &lt;code&gt;screen&lt;/code&gt; on the controller.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Job Composer&lt;/td&gt;
 &lt;td&gt;If the first visit is a direct link to &lt;code&gt;/pun/sys/myjobs/&lt;/code&gt;, it creates an empty database and shows error 500 from then on.&lt;/td&gt;
 &lt;td&gt;Open it the first time from the &lt;strong&gt;Jobs&lt;/strong&gt; menu. To fix it, delete &lt;code&gt;~/ondemand/data/sys/myjobs/production.sqlite3&lt;/code&gt; of that user (only if the file has no tables) and open the Job Composer from the menu.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Job Composer&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;New Job -&amp;gt; From Template&lt;/strong&gt; creates a job without a script.&lt;/td&gt;
 &lt;td&gt;Open &lt;strong&gt;Job Options&lt;/strong&gt;, select the script and click &lt;strong&gt;Save&lt;/strong&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Job states&lt;/td&gt;
 &lt;td&gt;OneSlurm has no Slurm accounting, so a cancelled job shows &lt;code&gt;Completed&lt;/code&gt; in Active Jobs and &lt;code&gt;Failed&lt;/code&gt; in the Job Composer.&lt;/td&gt;
 &lt;td&gt;Check the real state with &lt;code&gt;scontrol show job &amp;lt;ID&amp;gt;&lt;/code&gt; or in the output file of the job.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Project Manager&lt;/td&gt;
 &lt;td&gt;Deleting a project only removes it from the list. The files stay.&lt;/td&gt;
 &lt;td&gt;Delete the files in &lt;strong&gt;Files&lt;/strong&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Two portals&lt;/td&gt;
 &lt;td&gt;With two portals on the same homes, the Job Composer fails with error 500 when a user opens it on both at the same time.&lt;/td&gt;
 &lt;td&gt;Use one portal for each NFS home export.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;New Clusters&lt;/td&gt;
 &lt;td&gt;A new Cluster needs a running controller. If it does not answer, the configuration stops with &lt;code&gt;OOD_ERROR&lt;/code&gt;.&lt;/td&gt;
 &lt;td&gt;Start the controller first. Clusters the portal already knows can be stopped for maintenance.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item></channel></rss>