Skip to main content

Working with the Red Hat Insights API

Check out these instructions on how to remove a non-existing host from cloud.redhat.com.
Image
Binoculars

Since the announcement at Red Hat Summit 2019, Red Hat Insights is now included in Red Hat Enterprise Linux (RHEL) subscriptions. What many users don‘t know is that when one wants to remove a host from Insights, it has to be done via the command line  interface by running the command sudo insights-client --unregister. Removing it by using the Insights web interface on cloud.redhat.com is not sufficient.

But what do you do when a host doesn‘t exist anymore and is still listed there? Sometimes it‘s necessary to access the Red Hat Insights API, which is the case when a system has been deleted before having been unregistered from cloud.redhat.com. For this purpose, it is useful to have a container, since using one allows you to remove the non-existing host from cloud.redhat.com. This container can run on any other system; for example, on a CentOS server, a Fedora workstation, or on another Red Hat Enterprise Linux host.

Why a container? Well, a container is a dedicated process which runs isolated from the host system in a "sandbox." Why is this important and relevant? In order to access your account, you have to provide your credentials which are considered sensitive data. Running commands from within a container provides you with enhanced security, and this means that the credentials are not visible to other users outside of the container.

Now, how do you do this? You will need to install podman if it’s not already installed. It makes sense to install the accompanying Red Hat container tools buildah and skopeo as well. These additional tools are useful for specific tasks, such as building container images and managing container registries.

Run the following command on Fedora or on Red Hat Enterprise Linux 8 (for CentOS 7 or RHEL 7, dnf has to be replaced with yum):

$ sudo dnf install buildah podman skopeo

Once you have these tools installed, sign in to registry.redhat.io:

$ sudo podman login registry.redhat.io --username <username> --password <password>

Pull the Red Hat Enterprise Linux 8 Universal Base Image (UBI):

$ sudo podman pull registry.redhat.io/ubi8/ubi

Create and start the insights container:

$ sudo podman run --name insights --privileged -it registry.redhat.io/ubi8/ubi /usr/bin/bash

Install perl-JSON-PP and clean dnf and the cache:

# dnf install perl-JSON-PP
# dnf clean all
# rm -r /var/cache/dnf

Get information about the registered hosts:

# curl -k --user <username> https://cloud.redhat.com/api/inventory/v1/hosts | json_pp > hosts.json

You are getting asked for your Red Hat Login password at this point.

Check for the host <id> of the host you want to remove:

# cat hosts.json

Delete the "non-existing" operating system:

# curl -k --user <username> -X "DELETE" https://cloud.redhat.com/api/inventory/v1/hosts/<id>

You are getting asked for your Red Hat Login password at this point.

Now you're done and can leave the insights container:

# exit

Want to use the container again? Here you go:

$ sudo podman start insights
$ sudo podman attach insights

Summary

Using the method described in this article is currently the only way to remove a non-existing host from cloud.redhat.com when the system has been deleted before having been unregistered there by running the command sudo insights-client --unregister.

[Want to try out Red Hat Enterprise Linux? Download it now for free.]

What to read next

Topics:   Insights  
Author’s photo

Christian Labisch

I am running the latest editions of CentOS, Fedora, and Red Hat Enterprise Linux server and workstation operating systems on physical and virtual machines (VM). More about me

OUR BEST CONTENT, DELIVERED TO YOUR INBOX