Registering Hosts Using the Bootstrap Script

orcharhino comes with a bootstrap.py script to register existing hosts to orcharhino. It is available on your orcharhino Server at https://orcharhino.example.com/pub/bootstrap.py.

We recommend creating a backup or snapshot of your host before running the bootstrap script.

Prerequisites
  • You need root access on any hosts you want to register to orcharhino.

  • Hosts need to be able to communicate with orcharhino or any orcharhino Proxy through HTTP(S).

  • If you use a self-signed certificate on your orcharhino, ensure hosts trust the SSL certificate before running the bootstrap.py script.

  • You have created an activation key for the host that contains the necessary software content. For more information, see Creating an Activation Key.

  • You have configured a host group to manage the hosts through orcharhino. For more information, see Creating a Host Group.

    Ensure to select a host group without any predefined deploy on compute resource. Otherwise, registering an existing host starts deploying a new host to the compute resource selected in the deploy on drop down menu.

Procedure
  1. Download the bootstrap.py script using wget:

    # wget https://orcharhino.example.com/pub/bootstrap.py
  2. Use the --help option to display a list of mandatory options:

    # python bootstrap.py --help
  3. Register an existing host to orcharhino:

    # ./bootstrap.py \
    --fqdn "my-host.example.com" \
    --skip "puppet" \
    -L "Munich" \
    -a "red_hat_enterprise_linux" \
    -g "Red Hat Enterprise Linux" \
    -l "admin" \
    -o "Example" \
    -p "password" \
    -s "orcharhino.example.com"
    • Use --fqdn to specify the FQDN of the new host, for example --fqdn my-host.example.com.

    • Use -L to specify the location, for example -L Munich.

    • Use -a to specify the activation key, for example -a red_hat_enterprise_linux or -a red_hat_enterprise_linux_puppet.

    • Use -g to add the host to a host group, for example -g "Red Hat Enterprise Linux with Puppet".

    • Use -l to specify the orcharhino user, for example -l admin.

    • Use -o to specify the organization, for example -o Example.

    • Use -p to specify the corresponding password, for example -p password.

    • Use -s to specify the orcharhino FQDN, for example -s orcharhino.example.com.

    • Optional: Use --skip "puppet" to skip the installation of Puppet.

      You can use additional options to have orcharhino manage DHCP, provisioning, and configuration management for your existing host.

Using a Custom User for Remote Execution for bootstrap.py

If you set the remote execution user, you must create that user prior to running the bootstrap.py script on the host.

Procedure
  1. Install sudo on your managed host:

    # dnf install -y sudo
  2. Add your custom user:

    # useradd -m My_Custom_User
  3. Set up SSH for your custom user:

    # mkdir -p ~My_Custom_User/.ssh
    # chmod 0700 ~My_Custom_User/.ssh
    # chown -R My_Custom_User: ~My_Custom_User/.ssh
  4. Add your custom user to the sudoers file:

    # echo "My_Custom_User ALL = (root) NOPASSWD : ALL" >> /etc/sudoers
    # echo "Defaults:_My_Custom_User_ My_Custom_User_Password" >> /etc/sudoers
  5. Run the bootstrap.py script:

    # ./bootstrap.py --force

    Add required flags and options as described in Registering Hosts Using the Bootstrap Script.

Associating Registered Hosts with a Compute Resource

If you register hosts to orcharhino using the bootstrap.py script, the hosts are not automatically associated with their compute resource. You have to manually disassociate the host and then reassociate it again.

Procedure
  1. Navigate to Hosts > All Hosts and select your host.

  2. In the Select Action menu, click Disassociate Hosts.

  3. Navigate to Infrastructure > Compute Resources and select your compute resource.

  4. Click Associate VMs.

  5. In case your orcharhino Server or orcharhino Proxies run on the same compute resource, disassociate the VMs on the All Hosts page again.

Registering Hosts Running Red Hat Enterprise Linux Manually

Procedure
  1. Install the subscription-manager:

    # yum install -y subscription-manager
  2. Install the necessary certificates to connect to your orcharhino:

    # rpm -Uvh http://orcharhino.example.com/pub/katello-ca-consumer-latest.noarch.rpm
  3. Register your host with an activation key:

    # subscription-manager register --name="red_hat_enterprise_linux.example.com" --org="Example" --activationkey="Myred_hat_enterprise_linux_Activation_Key_"
  4. Install the katello-host-tools:

    # yum install -y katello-host-tools katello-host-tools-tracer
  5. To use remote execution, add the SSH public key from orcharhino Server. For more information, see Adding SSH Keys for Remote Execution.

Adding SSH Keys for Remote Execution

Add the SSH public key from orcharhino to your managed hosts to use remote execution and to patch your hosts.

Procedure
  1. Create the required directory:

    # mkdir -p ~root/.ssh
  2. Add the SSH public key from your orcharhino:

    # cat << EOF >> ~root/.ssh/authorized_keys
    ssh-rsa My_SSH_Public_Key foreman-proxy@orcharhino.example.com
    EOF

    Ensure that you use a user with root privileges. This can either be root or any user being part of the sudo group.

Associating Registered Hosts with a Compute Resource

If you register hosts to orcharhino manually, the hosts are not automatically associated with their compute resource. You have to manually enter networking information before you can associate the VMs.

Procedure
  1. On your managed hosts, view the MAC address, IP address, and device identifier of the network interface providing a connection to your orcharhino:

    # ip a
  2. Navigate to Hosts > All Hosts, select your host, and click Edit.

  3. On the Interfaces tab, click Edit and enter the MAC address, IPv4 address, and the device identifier.

  4. Click Submit to save your changes.

  5. Navigate to Hosts > All hosts and tick the checkbox of your host.

  6. In the Select Action drop down menu, click Disassociate Hosts.

  7. Navigate to Infrastructure > Compute Resources and select the compute resource your host runs on.

  8. On the Compute Resources tab, click Associate VMs.

  9. Optional: Navigate to Hosts > All Hosts, select your host, and verify your change by changing the power status of the host.

Migrating From Katello Agent to Remote Execution

Remote Execution is the preferred way to manage package content on hosts. The Katello Agent is deprecated and will be removed in a future orcharhino version. Follow these steps to switch to Remote Execution.

Prerequisites
  • You have previously installed the katello-agent package on content hosts.

Procedure
  1. Stop the goferd service on content hosts:

    # systemctl stop goferd.service
  2. Disable the goferd service on content hosts:

    # systemctl disable goferd.service
  3. Remove the Katello agent on content hosts:

    If your host is installed on oVirt version 4.4 or lower, do not remove the katello-agent package because the removed dependencies corrupt the host.
    # yum remove katello-agent
  4. Distribute the remote execution SSH keys to the content hosts. For more information, see Distributing SSH Keys for Remote Execution.

  5. In the orcharhino management UI, navigate to Administer > Settings.

  6. Select the Content tab.

  7. Set the Use remote execution by default parameter to Yes.

The orcharhino server now uses host management by remote execution instead of katello-agent.

The following table shows the remote execution equivalent commands to perform specific package actions. See hammer job-invocation create --help to learn how to specify search queries to determine the target hosts or host collections.

Table 1. Hammer Commands
Action Katello Agent Remote Execution

Install a package

hammer host package install

hammer job-invocation create --feature katello_package_install

Install a package (host collection)

hammer host-collection package install

hammer job-invocation create --feature katello_package_install

Remove a package

hammer host package remove

hammer job-invocation create --feature katello_package_remove

Remove a package (host collection)

hammer host-collection package remove

hammer job-invocation create --feature katello_package_remove

Update a package

hammer host package upgrade

hammer job-invocation create --feature katello_package_update

Update a package (host collection)

hammer host-collection package update

hammer job-invocation create --feature katello_package_update

Update all packages

hammer host package update

hammer job-invocation create --feature katello_package_update

Install errata

hammer host errata apply

hammer job-invocation create --feature katello_errata_install

Install errata (host collection)

hammer host-collection errata install

hammer job-invocation create --feature katello_errata_install

Install a package group

hammer host package-group install

hammer job-invocation create --feature katello_group_install

Install a package group (host collection)

hammer host-collection package-group install

hammer job-invocation create --feature katello_group_install

Remove a package group

hammer host package-group remove

hammer job-invocation create --feature katello_group_remove

Remove a package group (host collection)

hammer host-collection package-group remove

hammer job-invocation create --feature katello_group_remove

Update a package group

hammer host package-group update

hammer job-invocation create --feature katello_group_update

Update a package group (host collection)

hammer host-collection package-group update

hammer job-invocation create --feature katello_group_update