Chapter 15. Managing packages


You can use Satellite to install, upgrade, and remove packages and to enable or disable repositories on hosts.

Packages actions use remote execution. For more information about running remote execution jobs, see Configuring and setting up remote jobs in Managing hosts.

15.1. Enabling and disabling repositories on hosts

Use this procedure to enable and disable repositories on hosts.

Procedure

  1. In the Satellite web 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.

15.2. Installing packages on a host

Use this procedure to review and install packages on a host using the Satellite web UI. The list of packages available for installation depends on the content view environments assigned to the host.

Procedure

  1. In the Satellite web 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 Satellite web UI shows a notification for the remote execution job.

API procedure

  1. Supply the API request body in the JSON format:

    Example API request body:

{
  "job_invocation" : { 
1

    "concurrency_control" : {
      "concurrency_level" : 100 
2

    },
    "feature" : "katello_package_{PackageAction}", 
3

    "inputs" : {
      "package" : "nano vim" 
4

    },
    "scheduling" : { 
5

      "start_at" : "2023-09-21T19:00:00+00:00",
      "start_before" : "2023-09-23T00:00:00+00:00"
    },
    "search_query" : "*", 
6

    "ssh" : { 
7

      "effective_user" : "My_Username",
      "effective_user_password" : "My_Password"
    },
    "targeting_type" : "dynamic_query" 
8

  }
}
Copy to Clipboard Toggle word wrap
1
The "job_invocation" object, which contains the API request.
2
Optional: Limit the number of hosts on which the job is run concurrently.
3
The "feature" field with value "katello_package_install".
4
The "inputs/package" object that specifies the packages to install. Separate multiple packages with a whitespace.
5
Optional: Time boundaries for when to start to install packages.
  • You can specify one or both boundaries in the ISO 8601 format.
  • The action is canceled if it is not possible to install the packages by this time.
  • If you omit time, it defaults to 00:00:00.
  • If you omit time zone, it defaults to UTC.
6
The search query that matches the hosts on which you want to install the packages.
7
Optional: Credentials of an SSH user, if you want to install packages as that user.
8
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 running the job.
  • If you omit this field, it defaults to "static_query".
  1. Send a POST request with the created body to the /api/job_invocations endpoint of your Satellite Server and see a formatted response:

    Example API request:

    $ curl https://satellite.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
    Copy to Clipboard Toggle word wrap

Verification

  • In the Satellite web UI, navigate to Monitor > Jobs and see the report of the scheduled or completed remote execution job to install the packages on the selected hosts.

15.3. Upgrading packages on a host

You can upgrade packages on a host in bulk in the Satellite web UI.

Procedure

  1. In the Satellite web 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 Satellite web UI shows a notification for the remote execution job.

API procedure

  1. Supply the API request body in the JSON format:

    Example API request body:

{
  "job_invocation" : { 
1

    "concurrency_control" : {
      "concurrency_level" : 100 
2

    },
    "feature" : "katello_package_{PackageAction}", 
3

    "inputs" : {
      "package" : "nano vim" 
4

    },
    "scheduling" : { 
5

      "start_at" : "2023-09-21T19:00:00+00:00",
      "start_before" : "2023-09-23T00:00:00+00:00"
    },
    "search_query" : "*", 
6

    "ssh" : { 
7

      "effective_user" : "My_Username",
      "effective_user_password" : "My_Password"
    },
    "targeting_type" : "dynamic_query" 
8

  }
}
Copy to Clipboard Toggle word wrap
1
The "job_invocation" object, which contains the API request.
2
Optional: Limit the number of hosts on which the job is run concurrently.
3
The "feature" field with value "katello_package_update".
4
The "inputs/package" object that specifies the packages to update. Separate multiple packages with a whitespace.
5
Optional: Time boundaries for when to start to update packages.
  • You can specify one or both boundaries in the ISO 8601 format.
  • The action is canceled if it is not possible to update the packages by this time.
  • If you omit time, it defaults to 00:00:00.
  • If you omit time zone, it defaults to UTC.
6
The search query that matches the hosts on which you want to update the packages.
7
Optional: Credentials of an SSH user, if you want to update packages as that user.
8
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 running the job.
  • If you omit this field, it defaults to "static_query".
  1. Send a POST request with the created body to the /api/job_invocations endpoint of your Satellite Server and see a formatted response:

    Example API request:

    $ curl https://satellite.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
    Copy to Clipboard Toggle word wrap

Verification

  • In the Satellite web UI, navigate to Monitor > Jobs and see the report of the scheduled or completed remote execution job to update the packages on the selected hosts.

15.4. Removing packages from a host

You can remove packages from a host in the Satellite web UI.

Procedure

  1. In the Satellite web 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 Satellite web UI shows a notification for the remote execution job.

API procedure

  1. Supply the API request body in the JSON format:

    Example API request body:

{
  "job_invocation" : { 
1

    "concurrency_control" : {
      "concurrency_level" : 100 
2

    },
    "feature" : "katello_package_{PackageAction}", 
3

    "inputs" : {
      "package" : "nano vim" 
4

    },
    "scheduling" : { 
5

      "start_at" : "2023-09-21T19:00:00+00:00",
      "start_before" : "2023-09-23T00:00:00+00:00"
    },
    "search_query" : "*", 
6

    "ssh" : { 
7

      "effective_user" : "My_Username",
      "effective_user_password" : "My_Password"
    },
    "targeting_type" : "dynamic_query" 
8

  }
}
Copy to Clipboard Toggle word wrap
1
The "job_invocation" object, which contains the API request.
2
Optional: Limit the number of hosts on which the job is run concurrently.
3
The "feature" field with value "katello_package_remove".
4
The "inputs/package" object that specifies the packages to remove. Separate multiple packages with a whitespace.
5
Optional: Time boundaries for when to start to remove packages.
  • You can specify one or both boundaries in the ISO 8601 format.
  • The action is canceled if it is not possible to remove the packages by this time.
  • If you omit time, it defaults to 00:00:00.
  • If you omit time zone, it defaults to UTC.
6
The search query that matches the hosts on which you want to remove the packages.
7
Optional: Credentials of an SSH user, if you want to remove packages as that user.
8
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 running the job.
  • If you omit this field, it defaults to "static_query".
  1. Send a POST request with the created body to the /api/job_invocations endpoint of your Satellite Server and see a formatted response:

    Example API request:

    $ curl https://satellite.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
    Copy to Clipboard Toggle word wrap

Verification

  • In the Satellite web UI, navigate to Monitor > Jobs and see the report of the scheduled or completed remote execution job to remove the packages on the selected hosts.
Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

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

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

Theme

© 2025 Red Hat