Installing JBoss EAP by using the Red Hat Ansible Certified Content Collection


Red Hat JBoss Enterprise Application Platform 7.4

Automating deployments of JBoss EAP 7.4 with the Red Hat Ansible Certified Content Collection

Red Hat Customer Content Services

Abstract

Install and use the Red Hat Ansible Certified Content Collection to automate deployments of JBoss EAP.

Preface

The Red Hat Ansible Certified Content Collection for Red Hat JBoss Enterprise Application Platform is a prepackaged Ansible content collection that Red Hat provides. You can use the Red Hat Ansible Certified Content Collection to automate the installation and configuration of the Red Hat JBoss Enterprise Application Platform product. You can also add customized tasks to your playbook to automate the deployment of JBoss EAP applications either at the same time as the automated product installation or later.

Note

The rest of this document refers to the Red Hat Ansible Certified Content Collection for Red Hat JBoss Enterprise Application Platform as the JBoss EAP collection.

Providing feedback on JBoss EAP documentation

To report an error or to improve our documentation, log in to your Red Hat Jira account and submit an issue. If you do not have a Red Hat Jira account, then you will be prompted to create an account.

Procedure

  1. Click the following link to create a ticket.
  2. Please include the Document URL, the section number and describe the issue.
  3. Enter a brief description of the issue in the Summary.
  4. Provide a detailed description of the issue or enhancement in the Description. Include a URL to where the issue occurs in the documentation.
  5. Clicking Submit creates and routes the issue to the appropriate documentation team.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. We are beginning with these four terms: master, slave, blacklist, and whitelist. Because of the enormity of this endeavor, these changes will be implemented gradually over several upcoming releases. For more details, see our CTO Chris Wright’s message.

Ansible is an information technology (IT) automation engine that you can use to automate and simplify cloud provisioning, configuration management, application deployment, intraservice orchestration, and other tasks across your IT enterprise.

An Ansible collection is a standardized distribution format for reusable Ansible content such as playbooks, roles, modules, and plug-ins. Red Hat provides a series of prepackaged Red Hat Ansible Certified Content Collections. You can use these certified content collections to enable the automated deployment of various Red Hat Runtimes products such as Red Hat JBoss Enterprise Application Platform (JBoss EAP) in your system.

1.1. Ansible concepts and benefits

Ansible includes various elements such as playbooks, roles, content collections, and automation execution environments. Using Ansible to automate IT processes, workflows, and infrastructure lifecycles provides multiple benefits to your enterprise. If you are unfamiliar with Ansible architecture or you want more information about the benefits of using Ansible, refer to the following Additional resources links.

1.2. JBoss EAP collection

For general information about the JBoss EAP collection, refer to the JBoss EAP Collection for Ansible - redhat.eap page in Ansible automation hub. The JBoss EAP Collection for Ansible - redhat.eap page includes information about the roles that the collection contains. You can click the name of a role to view details about the purpose of this role, any requirements or dependencies, and the list of variables and default settings that the role uses to complete automation tasks.

Chapter 2. Installing the JBoss EAP collection

As a first step toward automating deployments of Red Hat JBoss Enterprise Application Platform (JBoss EAP) by using Ansible, you must download and install the JBoss EAP collection from Ansible automation hub. The JBoss EAP collection is named redhat.eap in Ansible automation hub. Before you install the JBoss EAP collection, you must ensure that your system complies with certain prerequisites.

Prerequisites

  • You have installed the ansible-core package version 2.14 or later on a control node in your system by installing Red Hat Ansible Automation Platform 2.x.

    For more information about installing Red Hat Ansible Automation Platform, see the Red Hat Ansible Automation Platform Installation Guide.

  • You have updated the ansible.cfg file to use Ansible automation hub as your primary source of Ansible collections. For more information about updating the ansible.cfg file, see Getting started with automation hub.

Procedure

  • On your Ansible control node, enter the following command:

    $ ansible-galaxy collection install redhat.eap
    Note

    If the preceding command produces a Failed to find collection redhat.eap:* error message, ensure that you have updated the ansible.cfg file correctly to use Ansible automation hub, as described in Getting started with automation hub.

    The preceding command produces the following output:

    Starting galaxy collection install process
    
    Process install dependency map
    
    Starting collection install process
    
    ...
    
    redhat.eap:<version> was installed successfully
    
    ...
    
    redhat.runtimes_common:<version> was installed successfully
    
    ...
    
    ansible.posix:<version> was installed successfully

    For the sake of brevity, the preceding example uses ellipses to denote omitted text. In the preceding output, <version> represents the latest available versions of the installed redhat.eap, redhat.runtimes_common, and ansible.posix collections.

Verification

  • On your Ansible control node, enter the following command:

    $ ansible-galaxy collection list

    The preceding command displays the list of installed collections. For example:

    Collection                 Version
    -------------------------- -------
    ansible.posix              <version>
    redhat.eap                 <version>
    redhat.runtimes_common     <version>
    ...

As shown in the preceding example, when you install the redhat.eap collection, the latest versions of the ansible.posix and redhat.runtimes_common collections are also automatically downloaded and installed on your Ansible control node. The redhat.runtimes_common collection provides a set of standard utilities to support the automated deployment of various Red Hat Runtimes products, such as JBoss EAP.

Note

If the latest versions of the ansible.posix and redhat.runtimes_common collections already exist on your Ansible control node, these collections are not automatically installed again.

The JBoss EAP collection provides a comprehensive set of variables and default values that you can manually update to match your setup requirements. These variable settings provide all the information that the JBoss EAP collection requires to complete an automated and customized installation of Red Hat JBoss Enterprise Application Platform (JBoss EAP) on your target hosts.

For a full list of variables that the JBoss EAP collection provides, see the redhat.eap roles in Ansible automation hub. The information page for the role lists the names, descriptions, and default values for all the variables that you can define.

Note

You can define variables in multiple ways. By default, the JBoss EAP collection includes an example playbook.yml file that links to a vars.yml file in the same playbooks folder. For illustrative purposes, the instructions in this section describe how to define variables in the vars.yml file that the collection provides. You can use a different way to define variables if you prefer.

You can define variables to automate the following tasks:

You can also perform the following automation enablement tasks:

By default, the JBoss EAP collection is configured to install Red Hat JBoss Enterprise Application Platform (JBoss EAP) on each target host from product archive files. Depending on your setup requirements, you can enable the JBoss EAP collection to install a base product release, product patch updates, or both simultaneously from archive files. You can choose to download the archive files manually from the Red Hat Customer Portal or enable the JBoss EAP collection to download the archive files automatically.

You can enable the JBoss EAP collection to install the base release of a specified JBoss EAP product version from archive files. A base release is the initial release of a specific product version (for example, 7.4.0 is the base release of version 7.4).

The JBoss EAP collection requires that local copies of the appropriate archive files are available on your Ansible control node. If copies of the archive files are not already on your system, you can set variables to specify Red Hat service account credentials to permit automatic file downloads from the Red Hat Customer Portal. Alternatively, you can download the archive files manually.

Prerequisites

  • You have installed the JBoss EAP collection.
  • If a copy of the JBoss EAP archive file is already on your system, you have copied this archive file to your Ansible control node. In this situation, you must copy the archive file to the same directory as your custom playbook on the Ansible control node.
  • If you want the JBoss EAP collection to download archive files automatically from the Red Hat Customer Portal, you have created a Red Hat service account.

    Note

    Service accounts enable you to securely and automatically connect and authenticate services or applications without requiring end-user credentials or direct interaction. To create a service account, log in to the Service Accounts page in the Red Hat Hybrid Cloud Console, and click Create service account.

  • If you prefer to download the archive file manually, you have downloaded the appropriate archive file to your Ansible control node. In this situation, you must download the archive file to the same directory as your custom playbook on the Ansible control node. For more information about downloading archive files, see the Red Hat JBoss Enterprise Application Platform Installation Guide.

    Note

    If you manually download the archive file, you do not need to extract this file on your Ansible control node. In this situation, the JBoss EAP collection extracts the archive file automatically.

Procedure

  1. On your Ansible control node, open the vars.yml file.
  2. To specify the JBoss EAP version that you want to install, set the eap_version variable to the appropriate base release.

    For example:

    [...]
    eap_version: 7.4.0
    Note

    Ensure that the value you specify for the eap_version variable matches the version of the product archive file that you want to install. For example, to install the archive file for JBoss EAP 7.4, specify a value of 7.4.0.

    If you do not specify credentials for automatic file downloads as described in Step 3, ensure that you have copied the archive file for the specified product version to your Ansible control node.

  3. If a copy of the JBoss EAP archive file does not exist on your Ansible control node, the collection contacts the Red Hat Customer Portal by default to download the archive file automatically. To ensure successful contact with the Red Hat Customer Portal, set the rhn_username and rhn_password variables to specify your Red Hat service account credentials.

    For example:

    [...]
    rhn_username: <client_ID>
    rhn_password: <client_secret>

    In the preceding example, replace <client_ID> and <client_secret> with the client ID and secret that are associated with your Red Hat service account.

    Note

    If a copy of the appropriate archive file already exists on your Ansible control node, the collection does not download this archive file again.

    If you prefer to download the archive file manually or you have already obtained this file in some other way, you can enforce a fully offline installation. For more information about enforcing offline installations, see Enabling the automated installation of JBoss EAP patch updates.

  4. If you changed the name of the downloaded archive file on your Ansible control node, set the eap_archive_filename variable to specify the file that you want to install.

    For example:

    [...]
    eap_archive_filename: <application_server_file>

    In the preceding example, replace <application_server_file> with the appropriate archive file name.

    Note

    If you did not change the file name, you do not need to set the eap_archive_filename variable. The JBoss EAP collection uses the value of the eap_version variable to determine the default file name automatically.

  5. Save your changes to the vars.yml file.

By setting these variables, as appropriate, you enable the JBoss EAP collection to install the base product release automatically on your target hosts when you subsequently run the playbook.

If product patch updates are available for the JBoss EAP version that is being installed, you can also enable the JBoss EAP collection to install these patch updates from archive files. Depending on your requirements, you can enable the JBoss EAP collection to install either the latest available patch or a specified patch release. You can use the same steps to enable the automated installation of patch updates regardless of whether you want to install the updates at the same time as the base release or later.

The JBoss EAP collection requires that local copies of the appropriate archive files are available on your Ansible control node. If copies of the archive files are not already on your system, you can set variables to specify Red Hat service account credentials to permit automatic file downloads from the Red Hat Customer Portal. Alternatively, you can download the archive files manually.

Note

Patch updates are cumulative, which means that each patch update automatically includes any earlier patch releases that are available for the same product version. For example, a 7.4.2 patch update would include the 7.4.1 release, a 7.4.3 patch update would include the 7.4.1 and 7.4.2 releases, and so on.

Important

You cannot use cumulative patch updates to install the base (X.X.0) release of a product version. For example, a 7.4.2 patch would include the 7.4.1 release but cannot install the base 7.4.0 release. In this situation, you must ensure that the base release of the appropriate product version (for example, 7.4.0) is also installed either at the same time or previously.

Prerequisites

  • You have installed the JBoss EAP collection.
  • If a copy of the archive file for the patch update that you want to install is already on your system, you have copied this archive file to your Ansible control node. In this situation, you must copy the archive file to the same directory as your custom playbook on the Ansible control node.
  • If you want the JBoss EAP collection to download archive files automatically from the Red Hat Customer Portal, you have created a Red Hat service account.

    Note

    Service accounts enable you to securely and automatically connect and authenticate services or applications without requiring end-user credentials or direct interaction. To create a service account, log in to the Service Accounts page in the Red Hat Hybrid Cloud Console, and click Create service account.

  • If you prefer to download the archive file manually, you have downloaded the appropriate archive file to your Ansible control node. In this situation, you must download the archive file to the same directory as your custom playbook on the Ansible control node. For more information about downloading archive files, see the Red Hat JBoss Enterprise Application Platform Installation Guide.

    Note

    Because patch updates are cumulative, you only need to download the archive file for the patch release that you want to install. You do not need to download any previous patch updates.

    If you manually download the archive file, you do not need to extract this file on your Ansible control node. In this situation, the JBoss EAP collection extracts the archive file automatically.

Procedure

  1. On your Ansible control node, open the vars.yml file.
  2. Set the eap_apply_cp variable to True.

    For example:

    [...]
    eap_version: 7.4.0
    [...]
    eap_apply_cp: True
    Note

    Ensure that the eap_version variable is set to the base release for the appropriate product version (for example, 7.4.0).

    The JBoss EAP collection is configured to install the latest patch update by default. The collection contacts the Red Hat Customer Portal to determine the correct patch to install.

  3. If you want the collection to install a specified patch release rather than the latest patch update, set the eap_patch_version variable to the patch release that you want to install.

    For example:

    [...]
    eap_apply_cp: True
    eap_patch_version: 7.4.2

    Based on the preceding example, the collection installs the cumulative 7.4.2 patch only, even if later patches are also available.

  4. When the eap_apply_cp variable is set to True, the JBoss EAP collection contacts the Red Hat Customer Portal by default to check if new patch updates are available. The collection also downloads patch updates, if necessary. To ensure successful contact with the Red Hat Customer Portal, set the rhn_username and rhn_password variables to specify your Red Hat service account credentials.

    For example:

    [...]
    rhn_username: <client_ID>
    rhn_password: <client_secret>

    In the preceding example, replace <client_ID> and <client_secret> with the client ID and secret that are associated with your Red Hat service account.

    Note

    If a copy of the appropriate archive file already exists on your Ansible control node, the collection does not download this archive file again.

    If the eap_patch_version variable is set to a specific patch release, the collection downloads the specified patch release only, even if later patches are also available.

    If you prefer to download the archive file manually or you have already obtained this file in some other way, you can enforce a fully offline installation, as described in Step 5.

  5. If you want to enforce a fully offline installation and prevent the collection from contacting the Red Hat Customer Portal, set the eap_offline_install variable to True.

    For example:

    [...]
    eap_offline_install: True
    Note

    The eap_offline_install variable is useful if your Ansible control node does not have internet access or you want the collection to avoid contacting the Red Hat Customer Portal for file downloads. In this situation, you must set the eap_patch_version variable to the patch release you want to install.

    Ensure that you have copied the archive file for the appropriate patch update to your Ansible control node. In this situation, you must copy the archive file to the same directory as your custom playbook on the Ansible control node.

    If you set the eap_offline_install variable to True, the collection does not attempt to contact the Red Hat Customer Portal, even if you have also set the rhn_username and rhn_password variables to permit automatic file downloads.

  6. Save your changes to the vars.yml file.

By setting these variables, as appropriate, you enable the JBoss EAP collection to install the product patch updates automatically on your target hosts when you subsequently run the playbook.

JBoss EAP requires that a Java Development Kit (JDK) is already installed as a prerequisite on your target hosts to ensure that JBoss EAP operates successfully. A JDK includes a Java Runtime Environment (JRE) and Java Virtual Machine (JVM), which must be available on any host where you want to run JBoss EAP. For a full list of JDK versions that JBoss EAP supports, see JBoss EAP 7.4 Supported Configurations.

By default, the JBoss EAP collection is configured to install the java-11-openjdk-headless package on each target host, based on the default value of the eap_java_package_name variable. If you want the JBoss EAP collection to install a different OpenJDK package version, you can modify the behavior of the collection to match your setup requirements

Consider the following guidelines for installing a JDK when you use the JBoss EAP collection:

  • If you want to install a Red Hat build of OpenJDK package other than java-11-openjdk-headless on your target hosts, you can set the eap_java_package_name variable to the appropriate JDK package name. The JBoss EAP collection automatically installs the specified package on each target host when you subsequently run the playbook.
  • If you want to install a different type of JDK that is listed in the JBoss EAP 7.4 Supported Configurations page, you must install the JDK manually on each target host. Alternatively, you can automate this process by using your own playbook. For more information about installing a different type of JDK, see the appropriate user documentation.

    In this situation, ensure that you set the eap_java_package_name variable to an empty string.

    For example:

    [...]
    eap_java_package_name: ""
  • If you already have a supported JDK installed on your target hosts, ensure that you set the eap_java_package_name variable to an empty string, as shown in the preceding example.
Note

Use the following procedure if you want to enable the JBoss EAP collection to install a Red Hat build of OpenJDK package other than java-11-openjdk-headless on your target hosts.

Prerequisites

Procedure

  1. On your Ansible control node, open the vars.yml file.
  2. Set the eap_java_package_name variable to the appropriate OpenJDK package name that you want to install.

    For example:

    [...]
    eap_java_package_name: java-1.8.0-openjdk-headless

    Based on the preceding example, the JBoss EAP collection automatically installs the java-1.8.0-openjdk-headless package on each target host when you run the playbook.

  3. Save your changes to the vars.yml file.

JBoss EAP requires that a product user account and user group are already created as a prerequisite on your target hosts. By default, the JBoss EAP collection handles this requirement by creating an eap user account and an eap group automatically on each target host. However, if you want the JBoss EAP collection to create a different user account and group, you can modify the behavior of the JBoss EAP collection to match your setup requirements.

The product user account is also assigned ownership of the directories that are required to run the JBoss EAP service.

Note

Use the following procedure if you want to enable the JBoss EAP collection to create a different user account and group rather than the eap default values.

Prerequisites

Procedure

  1. On your Ansible control node, open the vars.yml file.
  2. Set the eap_user and eap_group variables to the appropriate product user name and group name that you want to create.

    For example:

    [...]
    eap_user: myuser
    eap_group: myuser

    Based on the preceding example, the JBoss EAP collection automatically creates a myuser user account and group instead of creating the default eap user account and group.

  3. Save your changes to the vars.yml file.

You can enable the JBoss EAP collection to configure JBoss EAP subsystems with customized settings that match your setup requirements. In this situation, the JBoss EAP collection uses a YAML configuration feature for JBoss EAP.

If you want to enable the automated configuration of JBoss EAP, you must specify the appropriate configuration values in YAML format in a Jinja2 template file. Provided that you also set a variable to enable the YAML configuration feature, the JBoss EAP collection automatically creates a YAML configuration file based on the Jinja2 template settings.

Prerequisites

Procedure

  1. Create a Jinja2 template that contains YAML configuration values for the JBoss EAP subsystems:

    1. On your Ansible control node, create a Jinja2 template named, for example, jms_configuration.yml.j2.
    2. Add the appropriate configuration values to the template.

      For example, the following content shows configuration values for the Java Message Service (JMS) queue:

      jms_configuration.yml.j2:
      wildfly-configuration:
        subsystem:
          messaging-activemq:
            server:
              default:
                jms-queue:
                  {{ queue.name }}:
                    entries:
                      - '{{ queue.entry }}'
      Note

      Because the Jinja2 file is a template, you can use placeholders for the subsystem configuration values, as shown in the preceding example. If you use placeholders in the Jinja2 template, you must specify details of these placeholders in your playbook, as described in Step 2.

    3. Save your changes to the Jinja2 template.

    For more information about the types of YAML configuration settings that you can specify for the JBoss EAP subsystems, see Update standalone server configuration using YAML files.

  2. Update the playbook to include variables for the name of the Jinja2 template and any placeholders that you specified in the template:

    1. On your Ansible control node, open your custom playbook.
    2. In the vars: section of the playbook, add a variable to specify the name of the Jinja2 template that you created in Step 1.

      For example, add a variable named eap_yml_configs with a value of jms.configuration.yml.j2:

      ---
      - name: "JBoss EAP installation and configuration"
        hosts: all
        become: true
        vars:
          eap_yml_configs:
           - jms_configuration.yml.j2
    3. If you specified placeholders for the configuration values in the Jinja2 template, update the vars: section of your playbook with the appropriate placeholder details.

      For example, add variables for the queue.name and queue.entry placeholders that you specified in Step 1:

      ---
      [...]
        vars:
          queue:
            name: MyQueue
            entry: 'java:/jms/queue/MyQueue'
          eap_yml_configs:
           - jms_configuration.yml.j2
    4. Save your changes to the custom playbook.
  3. Enable the YAML configuration feature.

    1. On your Ansible control node, open the vars.yml file.
    2. Set the eap_enable_yml_config variable to True.

      For example:

      [...]
      eap_enable_yml_config: True
    3. Save your changes to the vars.yml file.

      Note

      The eap_enable_yml_config variable is set to False by default. If you want to enable the automated configuration of JBoss EAP subsystems, you must set the eap_enable_yml_config variable to True.

By performing all the steps in this procedure, as appropriate, you enable the JBoss EAP collection to create YAML configuration files based on your Jinja2 template settings when you subsequently run the playbook.

You can also automate the deployment of web applications on your target JBoss EAP hosts by adding customized tasks to the playbook. If you want to deploy a new or updated application, the JBoss EAP collection provides a reusable task for this purpose.

Note

The following procedure assumes that you have created a custom playbook.

Prerequisites

Procedure

  1. On your Ansible control node, open your custom playbook.
  2. In the tasks: section of the playbook, add a task to deploy the appropriate web application.

    For example:

    [...]
      post_tasks:
        [...]
        - name: "Deploy webapp"
          ansible.builtin.include_role:
            name: eap_utils
            tasks_from: jboss_cli.yaml
          vars:
            jboss_cli_query: "'deploy --force {{ path_to_warfile }}'"
    [...]
  3. Save your changes to the playbook.

Chapter 4. Running the playbook

After you define variable settings, you can run the playbook to begin the automated installation process. You can run a playbook by using the ansible-playbook command on the control node or by using the Red Hat Ansible automation controller. The JBoss EAP collection then handles all installation and deployment tasks automatically.

Note

The following procedure assumes that you have created and updated a custom playbook.

Prerequisites

  • You have enabled an automated deployment of JBoss EAP.
  • You are familiar with general Ansible concepts and creating Ansible playbooks. For more information, see the Ansible documentation.
  • Your playbook also includes an appropriate link to the location where you have defined your variables.

    For example:

    ---
    [...]
      vars_files:
        - <path_to_vars_file>/vars.yml
    [...]

    The preceding example assumes that you have defined variables in a vars.yml file. Replace <path_to_vars_file> with the appropriate path.

  • Your playbook also specifies the eap_install and eap_systemd roles.

    For example:

    ---
    [...]
      roles:
        - eap_install
        - eap_systemd
    [...]
    Note

    The eap_install role controls the installation of JBoss EAP. The eap_systemd role controls the YAML-based configuration of JBoss EAP subsystems and the setup of JBoss EAP as an eap service that is managed by systemd.

  • Red Hat Enterprise Linux (RHEL) version 8 or 9 is already installed on your target hosts.

Procedure

  • Perform either of the following steps:

    • On your Ansible control node, enter the following command:

      $ ansible-playbook <playbook_name>.yml

      In the preceding command, replace <playbook_name> with the name you have assigned to your playbook. The preceding command assumes that your user account supports passwordless authentication.

      Note

      If your user account requires password authentication, you can run the preceding command with the --ask-sudo-pass option and specify the required password when prompted. For example:

      $ ansible-playbook <playbook_name>.yml --ask-sudo-pass

    • Use the Red Hat Ansible automation controller to run your playbook. For more information about getting started with the automation controller, see the Red Hat Ansible Automation Platform documentation page.

Chapter 5. Validating the deployment

After you successfully run the playbook, the JBoss EAP collection automatically installs JBoss EAP on your target hosts and sets up JBoss EAP as an eap service that is managed by systemd. If you have added customized tasks to the playbook, Ansible also automatically deploys any JBoss EAP applications on your target hosts, as appropriate. You can optionally check the status of JBoss EAP by using the JBoss EAP Management CLI to connect to the server.

Prerequisites

Procedure

  • On your target host, launch the Management CLI and connect to the server:

    $ <EAP_HOME>/bin/jboss-cli.sh --connect --controller=192.168.0.1:9991
Note

The JBoss EAP collection also includes a validate.yml playbook in the playbooks folder. You can run the validate.yml playbook if you want the JBoss EAP collection to perform automated validation checks. For more information about the validate.yml playbook, refer to the eap_validation role in Ansible automation hub.





Revised on 2024-06-14 18:23:41 UTC

Legal Notice

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat Documentation

Legal Notice

Theme

© 2026 Red Hat
Back to top