Managing packages in orcharhino

You can use orcharhino to install, upgrade, and remove packages and to enable or disable repositories on hosts. Package actions use remote execution so you can manage software on hosts from a central place.

Viewing installed packages

You can view the installed packages on a host to see what is present or to plan package or errata actions.

Procedure
  1. In the orcharhino management UI, navigate to Hosts > All Hosts and select the name of the host.

  2. On the Content tab, Packages displays a list of installed packages.

  3. To see details of a package, select that package.

    • The Details tab displays details of the selected package.

    • The Files tab lists the files contained in the package.

    • The Dependencies tab lists the dependencies of the package.

    • The Repositories tab lists the repositories that contain the selected package.

  4. You can filter these by Library or Default organization.

Viewing upgradable packages

You can use orcharhino to view upgradable packages. To use the CLI instead of the orcharhino management UI, see the CLI procedure.

Procedure
  1. In the orcharhino management UI, navigate to Hosts > All Hosts.

  2. Select your host.

  3. On the Content tab, select the Packages tab.

  4. Select Upgradable from the Status list.

    By default, orcharhino shows all installed packages.

CLI procedure
  1. Optional: Get the ID of your host:

    $ hammer host list --fields Id,Name
  2. Get a list of upgradable packages of your host:

    $ hammer host package list --status upgradable --host-id My_Host_ID
Additional resources
  • For more information about Hammer CLI, run hammer host package list --help on your orcharhino.

  • For more information about content management, see Managing Content.

Next steps
  • You can use remote execution to upgrade packages on your host. For more information, see Executing a remote job in Managing Hosts.

  • You can use Hammer CLI to upgrade packages on your host:

    $ hammer job-invocation create --feature katello_package_update --search-query "id = My_Host_ID" --inputs "package=My_Package_Name"

    For more information, see Using Hammer CLI.

Enabling and disabling repositories on hosts

You can enable or disable repositories on a host from the orcharhino management UI to control which package sources the host can use. This affects which packages are available for installation or upgrade on the host.

Procedure
  1. In the orcharhino management UI, navigate to Hosts > All Hosts,

  2. Select a host.

  3. On the Content tab, click the Repository sets tab.

  4. Click the vertical ellipsis to choose Override to disabled or Override to enabled to disable or enable repositories on hosts.

Installing packages on a host

You can review and install packages on a host from the orcharhino management UI so that the host has the software it needs. Available packages depend on the content view environments assigned to the host.

Prerequisites
  • The host is assigned to a content view and lifecycle environment.

If you select multiple hosts with different operating systems, you might get unexpected results due to the different return codes of different package managers.

Procedure
  1. In the orcharhino management UI, navigate to Hosts > All Hosts.

  2. Select a host.

  3. On the Content tab, click the Packages tab.

  4. On the vertical ellipsis icon next to the upgrade button, click Install packages.

  5. In the Install packages window, select the package or packages that you want to install on the host.

  6. Click Install. The orcharhino management UI shows a notification for the remote execution job.

Applying errata to hosts by using orcharhino management UI

You can use the orcharhino management UI to review and apply errata to hosts so that security and bugfix updates are installed on selected hosts.

Prerequisites
  • orcharhino repositories are synchronized with the latest errata available from Red Hat.

  • The hosts are registered to an environment and content view on orcharhino Server. For more information, see Registering hosts by using global registration in Managing Hosts.

  • The host is configured for remote execution. For more information about running remote execution jobs, see Configuring and setting up remote jobs in Managing Hosts.

Procedure
  1. In the orcharhino management UI, navigate to Content > Content Types > Errata.

  2. Click the name of an erratum you want to apply.

  3. On the to Content Hosts tab, select all hosts that you want to apply errata to.

  4. Click Apply to Hosts and click Confirm.

Verification
  1. In the orcharhino management UI, navigate to Monitor > Jobs.

  2. Select the most recent Install errata job.

  3. Verify that the remote execution to apply errata to all selected host succeeded.

Applying errata to hosts by using CLI

You can use Hammer CLI to review and apply errata to hosts so that security and bugfix updates are installed on selected hosts.

Procedure
  1. List all errata:

    $ hammer erratum list --organization "My_Organization"

    You can limit the output to applicable by adding --errata-restrict-applicable or to installable errata by adding --errata-restrict-installable.

  2. Optional: View information of an erratum:

    $ hammer erratum info --id My_Erratum_ID
  3. Apply errata to your hosts.

    You can use Remote Execution:

    $ hammer job-invocation create \
    --feature katello_errata_install \
    --inputs errata=My_Erratum_ID_1,My_Erratum_ID_2 \
    --search-query "name = host.example.com"

    If you want to apply errata to all hosts in a host collection, use "host_collection = My_Host_Collection_Name" as the search query. If you want to apply a specific erratum to all hosts, use "applicable_errata = My_Erratum_ID" as the search query.

    You can use a Bash script that applies an erratum to each host for which this erratum is available:

    for HOST in hammer --csv --csv-separator "|" host list --search "applicable_errata = My_Erratum_ID" --organization "My_Organization" | tail -n+2 | awk -F "|" '{ print $2 }' ;
    do
      echo "== Applying to $HOST ==" ; hammer job-invocation create --feature katello_errata_install --search-query "name = $HOST" --inputs errata=My_Erratum_ID_1,My_Erratum_ID_2 ;
    done

    This command identifies all hosts with My_Erratum_ID as an applicable erratum and then applies the erratum to each host.

Verification
  1. Locate the task ID of your errata application in task listing:

    $ hammer task list
  2. Inspect the state of the selected task:

    $ hammer task progress --id My_Task_ID

You can use orcharhino and errata to patch your hosts.

Errata are information about updated packages containing security fixes, bug fixes, and enhancements.

Upgrading packages on a host

You can upgrade packages on a host in bulk from the orcharhino management UI.

If you select multiple hosts with different operating systems, you might get unexpected results due to the different return codes of different package managers.

Procedure
  1. In the orcharhino management UI, navigate to Hosts > All Hosts.

  2. Select a host.

  3. On the Content tab, click the Packages tab.

  4. Select Upgradable from the Status list.

  5. In the Upgradable to column, select the package version that you want to upgrade to.

  6. Select the packages you want to upgrade.

  7. Click Upgrade. The orcharhino management UI shows a notification for the remote execution job.

Removing packages from a host

You can remove packages from a host from the orcharhino management UI to uninstall software or resolve dependency conflicts.

If you select multiple hosts with different operating systems, you might get unexpected results due to the different return codes of different package managers.

Procedure
  1. In the orcharhino management UI, navigate to Hosts > All Hosts.

  2. Select a host.

  3. On the Content tab, click the Packages tab.

  4. Click the vertical ellipsis for the package you want to remove.

  5. Select Remove. The orcharhino management UI shows a notification for the remote execution job.

Managing packages on a host by using API

You can install, upgrade, or remove packages on a host by using the orcharhino API for automation, scripts, or integration with other tools.

The example below uses the katello_package_install action to install a package. You can also use package actions katello_package_upgrade to upgrade or katello_package_remove to remove packages.

Procedure
  1. Specify the API request body in the JSON format. For example:

    {
      "job_invocation" : {
        "concurrency_control" : {
          "concurrency_level" : 100
        },
        "feature" : "katello_package_install",
        "inputs" : {
          "package" : "nano vim"
        },
        "scheduling" : {
          "start_at" : "2023-09-21T19:00:00+00:00",
          "start_before" : "2023-09-23T00:00:00+00:00"
        },
        "search_query" : "*",
        "ssh" : {
          "effective_user" : "My_Username",
          "effective_user_password" : "My_Password"
        },
        "targeting_type" : "dynamic_query"
      }
    }

    The example uses the following notable values:

    "job_invocation"

    Specifies the object which contains the API request.

    "concurrency_level"

    Optional. Limits the number of hosts on which the job is run concurrently.

    "feature"

    Specifies the action to be performed. Use "katello_package_install" to install a package, "katello_package_upgrade" to upgrade a package, or "katello_package_remove" to remove a package.

    "package"

    Specifies the packages on which the action is performed. Separate multiple packages with a whitespace.

    "scheduling"

    Optional. Specifies time boundaries for when to start the package action.

    • You can specify one or both boundaries in the ISO 8601 format.

    • The action is canceled if it is not possible to perform the package action by this time.

    • If you omit time, it defaults to 00:00:00.

    • If you omit time zone, it defaults to UTC.

    "search_query"

    Specifies the search query that selects the hosts on which you want to perform the package action.

    "ssh"

    Optional. Specifies the credentials of an SSH user, if you want to perform the package action as that user.

    "dynamic_query"

    Optional. If you supplied the "scheduling" object, you can make the search query be evaluated when the job runs by specifying the "targeting_type/dynamic_query" field.

    • This is useful if you expect the query to produce a different result at the time of the job run.

    • If you omit this field, it defaults to "static_query".

  2. Send a POST request with the created body to the /api/job_invocations endpoint of your orcharhino Server and see a formatted response. For example:

    $ curl https://orcharhino.example.com/api/job_invocations \
    -H "content-type: application/json" \
    -X POST \
    -d @Path_To_My_API_Request_Body \
    -u My_Username:My_Password \
    | python3 -m json.tool
Verification
  • In the orcharhino management UI, navigate to Monitor > Jobs and see the report of the scheduled or completed remote execution job to perform the package action on the selected hosts.

The text and illustrations on this page are licensed by ATIX AG under a Creative Commons Attribution Share Alike 4.0 International ("CC BY-SA 4.0") license. This page also contains text from the official Foreman documentation which uses the same license ("CC BY-SA 4.0").