Skip to content

Commit

Permalink
M #-: Remove uneeded/optional steps from installation guide
Browse files Browse the repository at this point in the history
- Front-end
- KVM node
  • Loading branch information
rsmontero committed Aug 13, 2024
1 parent 681fc95 commit fbfe675
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 117 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,15 @@ This page describes how to install a complete OpenNebula Front-end from binary p

Proceed with the following steps to get the fully-featured OpenNebula Front-end up.

Step 1. Disable SELinux on AlmaLinux/CentOS7/RHEL (Optional)
================================================================================

Depending on the type of OpenNebula deployment, the SELinux can block some operations initiated by the OpenNebula Front-end, which results in a failure of the particular operation. It's **not recommended to disable** the SELinux in production environments as it degrades the security of your server, but instead to investigate and work around each individual problem based on the `SELinux User's and Administrator's Guide <https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/>`__. The administrator might disable the SELinux to temporarily work around the problem or on non-production deployments by changing the following line in ``/etc/selinux/config``:

.. code-block:: bash
SELINUX=disabled
After the change, you have to reboot the machine.

.. _setup_opennebula_repos:

Step 2. Add OpenNebula Repositories
Step 1. Configure the OpenNebula Repositories
================================================================================

Follow the :ref:`OpenNebula Repositories <repositories>` guide and add software repositories for the OpenNebula edition you are going to deploy.


Step 3. Add 3rd Party Repositories
Step 2. Add 3rd Party Repositories
================================================================================

Not all OpenNebula dependencies are in base distribution repositories. On selected platforms below you need to enable 3rd party repositories by running the following commands under privileged user (``root``):
Expand Down Expand Up @@ -107,7 +96,7 @@ There are also packages with debugging symbols for some platforms, e.g. ``openen

There are a few differences in package names among distributions. Those with varying package names contain mostly integration libraries and since they are for general use on installation Hosts, their names are left to follow the distribution conventions. Above, you can find the AlmaLinux/RHEL specific packages prefixed with "*rpm:*" and Debian/Ubuntu specific packages prefixed with "*deb:*".

AlmaLinux / CentOS7 / RHEL
AlmaLinux / RHEL
--------------------------

Install all OpenNebula Front-end components by executing the following commands under a privileged user:
Expand Down Expand Up @@ -160,52 +149,14 @@ Install all OpenNebula Front-end components by executing the following commands
# curl 'https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip' | zcat >/usr/bin/terraform
# chmod 0755 /usr/bin/terraform

.. _ruby_runtime:

Step 4. Install Ruby Dependencies System-wide (Optional)
================================================================================

.. important::

For **new deployments**, we recommend skipping this step.

When **upgrading** an existing deployment which could be running OpenNebula older than 5.10.0 anytime in the past, you might need to install Ruby dependencies via ``install_gems`` if you are not yet using the shipped Ruby gems (i.e., when symbolic link ``/usr/share/one/gems`` doesn't exist on your Front-end)!

.. warning::

Since OpenNebula 5.10, this step is **optional** and all required Ruby gems are provided within the **opennebula-rubygems** package. Ruby gems are installed into a dedicated directory ``/usr/share/one/gems-dist/``, but OpenNebula uses them via the (symlinked) location ``/usr/share/one/gems/`` which points to the ``gems-dist/`` directory. When the ``gems/`` directory (by default on new installations) exists, OpenNebula uses the gems inside **exclusively** by removing any other system Ruby gems locations from the search paths!

.. prompt:: bash # auto

# ls -lad /usr/share/one/gems*
lrwxrwxrwx 1 root root 9 Aug 13 11:41 /usr/share/one/gems -> gems-dist
drwxr-xr-x 9 root root 4096 Aug 13 11:41 /usr/share/one/gems-dist

If you want to use the system-wide Ruby gems instead of the packaged ones, remove the symlink ``/usr/share/one/gems/`` and install all required dependencies with the ``install_gems`` script described below. The removed ``/usr/share/one/gems/`` symlink **won't be created again on the next OpenNebula upgrade**. Ruby gems shipped with OpenNebula can't be avoided or uninstalled, but their use can be disabled by removing the ``/usr/share/one/gems/`` symlink.

If additional Ruby gems are needed by custom drivers or hooks, they must be installed into the introduced dedicated directory. For example, set the gem name in ``$GEM_NAME`` and run under privileged user root:

.. prompt:: bash # auto

# export GEM_PATH=/usr/share/one/gems/
# export GEM_HOME=/usr/share/one/gems/
# gem install --install-dir /usr/share/one/gems/ --bindir /usr/share/one/gems/bin/ --no-document --conservative $GEM_NAME

Several OpenNebula components depend on Ruby and specific Ruby libraries (gems). They are distributed alongside OpenNebula but are available to and used exclusively by OpenNebula. For advanced usage, you can use the following commands to install all Ruby libraries system-wide and enforce OpenNebula to use them:

.. prompt:: bash # auto

# test -L /usr/share/one/gems && unlink /usr/share/one/gems
# /usr/share/one/install_gems

Step 5. Enabling MySQL/MariaDB (Optional)
Step 3. Enabling MySQL/MariaDB (Optional)
================================================================================

You can skip this step if you want to deploy OpenNebula as quickly as possible for evaluation.

If you are deploying Front-end for production/serious use, make sure you read the :ref:`Database Setup <database_setup>` guide and select the suitable database Back-end. Although it **is** possible to switch from (default) SQLite to MySQL/MariaDB Back-end later, it's not easy and straightforward, so **we suggest to deploy and use MySQL/MariaDB Back-end from the very beginning**.

Step 6. Configuring OpenNebula
Step 4. Configuring OpenNebula
================================================================================

OpenNebula Daemon
Expand Down Expand Up @@ -286,7 +237,7 @@ If you are reconfiguring already running services at a later point, don't forget

.. _frontend_services:

Step 7. Starting and Managing OpenNebula Services
Step 5. Starting and Managing OpenNebula Services
================================================================================

The complete list of operating system services provided by OpenNebula:
Expand Down Expand Up @@ -335,7 +286,7 @@ Other OpenNebula services might be started as a dependency but you don't need to

.. _verify_frontend_section:

Step 8. Verifying the Installation
Step 6. Verifying the Installation
================================================================================

After OpenNebula is started for the first time, you should check that the commands can connect to the OpenNebula daemon. You can do this in the Linux CLI or the graphical user interface Sunstone.
Expand Down Expand Up @@ -462,7 +413,7 @@ OpenNebula connects to the hypervisor Nodes over SSH (port 22). Additionally, th

You should open the outgoing connections to these services.

Step 9. Stop and Restart Services (Optional)
Step 7. Stop and Restart Services (Optional)
================================================================================

To stop, start or restart any of the listed individual :ref:`services <frontend_services>`, follow the examples below for a selected service:
Expand Down Expand Up @@ -501,7 +452,7 @@ In production environments the services should be stopped in a specific order an
4. Check and wait until there are no active operations with VMs and images.
5. Stop **opennebula** and rest services.

Step 10. Next steps
Step 8. Next steps
================================================================================

Now that you have successfully started your OpenNebula services, you can continue with adding content to your cloud. Add hypervisor Nodes, storage, and Virtual Networks. Or you can provision Users with Groups and permissions, Images, define and run Virtual Machines.
Expand Down
2 changes: 1 addition & 1 deletion source/integration_and_development/references/compile.rst
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ The packages do a ``system-wide`` installation. To create a similar environment,
Ruby Dependencies
================================================================================

Please follow the :ref:`installation guide <ruby_runtime>`, for a detailed description on how to install the Ruby dependencies.
All required Ruby gems are provided by the **opennebula-rubygems** package. Please check the :ref:`Front-end installation guide <packages>` for more information on installing this package.

Building Python Bindings from source
================================================================================
Expand Down
38 changes: 18 additions & 20 deletions source/intro_release_notes/release_notes/platform_notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,24 @@ Certified Components Version
Front-End Components
--------------------------------------------------------------------------------

+--------------------------+--------------------------------------------------------+-------------------------------------------------------+
| Component | Version | More information |
+==========================+========================================================+=======================================================+
| Red Hat Enterprise Linux | 8, 9 | :ref:`Front-End Installation <frontend_installation>` |
+--------------------------+--------------------------------------------------------+-------------------------------------------------------+
| AlmaLinux | 8, 9 | :ref:`Front-End Installation <frontend_installation>` |
+--------------------------+--------------------------------------------------------+-------------------------------------------------------+
| Ubuntu Server | 22.04 (LTS), 24.04 (LTS) | :ref:`Front-End Installation <frontend_installation>` |
+--------------------------+--------------------------------------------------------+-------------------------------------------------------+
| Debian | 11, 12 | :ref:`Front-End Installation <frontend_installation>`.|
| | | Not certified to manage VMware infrastructures |
+--------------------------+--------------------------------------------------------+-------------------------------------------------------+
| MariaDB or MySQL | Version included in the Linux distribution | :ref:`MySQL Setup <mysql>` |
+--------------------------+--------------------------------------------------------+-------------------------------------------------------+
| SQLite | Version included in the Linux distribution | Default DB, no configuration needed |
+--------------------------+--------------------------------------------------------+-------------------------------------------------------+
| Ruby Gems | Versions installed by packages or install_gems utility | :ref:`front-end installation <ruby_runtime>` |
+--------------------------+--------------------------------------------------------+-------------------------------------------------------+
+--------------------------+---------------------------------------------+-------------------------------------------------------+
| Component | Version | More information |
+==========================+=============================================+=======================================================+
| Red Hat Enterprise Linux | 8, 9 | :ref:`Front-End Installation <frontend_installation>` |
+--------------------------+---------------------------------------------+-------------------------------------------------------+
| AlmaLinux | 8, 9 | :ref:`Front-End Installation <frontend_installation>` |
+--------------------------+---------------------------------------------+-------------------------------------------------------+
| Ubuntu Server | 22.04 (LTS), 24.04 (LTS) | :ref:`Front-End Installation <frontend_installation>` |
+--------------------------+---------------------------------------------+-------------------------------------------------------+
| Debian | 11, 12 | :ref:`Front-End Installation <frontend_installation>`.|
| | | Not certified to manage VMware infrastructures |
+--------------------------+---------------------------------------------+-------------------------------------------------------+
| MariaDB or MySQL | Version included in the Linux distribution | :ref:`MySQL Setup <mysql>` |
+--------------------------+---------------------------------------------+-------------------------------------------------------+
| SQLite | Version included in the Linux distribution | Default DB, no configuration needed |
+--------------------------+---------------------------------------------+-------------------------------------------------------+
| Ruby Gems | Versions installed by opennebula-rubygems | Detailed information in ``/usr/share/one/Gemfile`` |
+--------------------------+---------------------------------------------+-------------------------------------------------------+

.. _vcenter_nodes_platform_notes:

Expand Down Expand Up @@ -149,8 +149,6 @@ Sunstone
**Chrome**: chrome://flags -> #touch-events: disabled.
**Firefox**: about:config -> dom.w3c_touch_events: disabled.

.. note:: Generally, for all Linux platforms, it is worth noting that Ruby gems should be used from packages shipped with OpenNebula or installed with the :ref:`install_gems <ruby_runtime>` utility. Avoid using Ruby gem versions shipped with your platform.

.. _edge_cluster_provision_workloads_compatibility:

Compatibility of Workloads on Certified Edge Clusters
Expand Down
22 changes: 0 additions & 22 deletions source/intro_release_notes/upgrades/upgrading_single.rst
Original file line number Diff line number Diff line change
Expand Up @@ -78,28 +78,6 @@ RHEL
Reapply the permissions to prevent this problem

.. important::

When **upgrading** an existing deployment which could be running OpenNebula older than 5.10.0 anytime in the past, you might need to upgrade also required Ruby dependencies with script ``install_gems`` if you are not yet using the shipped Ruby gems (i.e., when symbolic link ``/usr/share/one/gems`` doesn't exist on your Front-end)!

If unsure, run ``/usr/share/one/install_gems`` and the script warns if action is not relevant for you. For example:

.. prompt:: bash $ auto

$ /usr/share/one/install_gems
WARNING: Running install_gems is not necessary anymore, as all the
required dependencies are already installed by your packaging
system into symlinked location /usr/share/one/gems. Ruby gems
installed by this script won't be used until this symlink exists.
Remove the symlink before starting the OpenNebula services
to use Ruby gems installed by this script. E.g. execute

# unlink /usr/share/one/gems

Execution continues in 15 seconds ...

Read :ref:`this <ruby_runtime>` for more information.

Community Edition
--------------------------------------------------------------------------------

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,17 +84,6 @@ We advise using **Apache/Passenger** in your installation, but we'll also presen
Deploy with Apache/Passenger (Recommended)
------------------------------------------

.. warning::

Since OpenNebula 5.10, all required Ruby gems are packaged and installed into a dedicated directory ``/usr/share/one/gems-dist/`` symlinked to ``/usr/share/one/gems/``. Check the details in :ref:`Front-end Installation <ruby_runtime>`.

If the symlinked location is preserved, the shipped Ruby gems are used exclusively. It might be necessary to force the Ruby running inside the web server to use the dedicated locations by configuring the ``GEMS_HOME`` and ``GEMS_PATH`` environment variables, for example by putting the following settings into your Apache configuration:

.. code-block:: apache
SetEnv GEM_PATH /usr/share/one/gems/
SetEnv GEM_HOME /usr/share/one/gems/
`Phusion Passenger <https://www.phusionpassenger.com/>`__ is a module for the `Apache <http://httpd.apache.org/>`__ and `Nginx <http://nginx.org/en/>`__ web servers that runs Ruby Rack applications. This can be used to run the Sunstone server and will manage its whole life cycle. If you are already using one of these servers or if you feel comfortable with one of them, we encourage you to use this method. This kind of deployment adds better concurrency and lets us add a https endpoint.

.. note::
Expand Down
5 changes: 0 additions & 5 deletions source/open_cluster_deployment/kvm_node/kvm_driver.rst
Original file line number Diff line number Diff line change
Expand Up @@ -467,11 +467,6 @@ You can translate that into a command on the configuration file as follows
:guest_info: "one-$vm_id '{\"execute\":\"guest-info\"}' --timeout 5"
Importing VMs
-------------

VMs running on KVM hypervisors that were not launched through OpenNebula can be :ref:`imported in OpenNebula <import_wild_vms>`. It is important to highlight that, besides the limitations explained in the Host guide, the "Poweroff" operation is not available for these imported VMs in KVM.

Tuning & Extending
==================

Expand Down

0 comments on commit fbfe675

Please sign in to comment.