Host Groups

The host groups page can be accessed via the configure menu:

Configure > Host Groups

Host groups allow you to group arbitrary hosts in a structured way. The grouping is structured, since host groups support inheritance from parent host groups. Host groups are especially useful if you want to roll out a certain type of host multiple times, e.g. a fully configured database server.

Host groups are not named lists of hosts, but rather boilerplate with specific settings for new and existing hosts. Host groups are to be used as a blueprint for new hosts.

Changing the provisioning parameters of an existing host group will only affect hosts provisioned via the host group at a later time, i.e. it will not alter any existing hosts. However, configuration management changes for a host group will affect existing hosts.

The host groups page is placed within the configure menu as it bundles functionality relevant to orcharhino’s content management and provisioning setup. By contrast, host collections provide host groupings solely for the purpose of orcharhino’s content management.

Viewing Host Groups

Navigate to Configure > Host Groups to view a list of existing host groups:

List of host groups
  • The Export button (1) allows you to export a list of all host groups as a .csv file to your local machine which may look as follows:

    Title,Hosts Count,Children Hosts Count
    CentOS 7,1,8
    CentOS 7/DMZ,3,3
    CentOS 7/nginx,4,4
    Debian 10,1,1
    Suse 15 SP2,1,2
    Suse 15 SP2/DMZ,1,1
  • The Create Host Group button (2) allows you to create a host group.

  • The list of host groups (3) displays all existing host groups. Clicking on a host group allows you to edit it.

  • The Actions menu (4) holds four functions:

    • You can nest host groups, i.e. create a host group with all settings inherited from a parent host group. This allows for logical structuring within your host groups, e.g. having a base host group with children for special networks or purposes.

    • You may clone a host group, i.e. create a host group based on another host group. A cloned host group does not inherit any future changes made to its original.

    • You may run Ansible roles on hosts belonging to a selected host group.

    • You may delete a host group. This does not delete any hosts or reset their configuration.

Creating a Host Group

Creating a host group is similar to creating a host. This examples chooses to utilise all three configuration management tools: Ansible, Puppet, and Salt, though this approach is purely for educational purposes.

Host group part 1
Host group part 2
  • The Parent field (1) allows you to nest host groups. Selecting Inherit parent (<value>) on any other field will mirror the set value of the selected parent host group. This implies that the child host group will receive changes made to the parent host group.

  • The Name field (2) requires a meaningful and unique name for the new host group.

  • You may set an arbitrary Description (3) for the host group.

  • The Lifecycle Environment drop down menu (4) defines the stage in which certain versions of content are available to hosts.

  • The Content View drop down menu (5) defines the bundle of products made available to a host.

  • The Content Source drop down menu (6) defines the machine a host will receive content from. This can either be orcharhino itself or any attached orcharhino proxy.

  • The Puppet Environment drop down menu (7) defines the stage of the Puppet configuration. This allows you to potentially test changes to Puppet modules and parameters on a non production set of hosts first.

  • The Deploy on drop down menu (8) defines the compute resource provider that the host will be deployed to. This example chooses VMware.

  • The Compute Profile drop down menu (9) defines the resources for a new host. There are three default profiles, but they can be altered or expanded. Each compute resource has its own set of compute profiles.

  • The Puppet Master drop down menu (10) defines the Puppet master of the host. This can either be orcharhino itself or any attached orcharhino proxy.

  • The Puppet CA drop down menu (11) defines the Puppet certificate authority. This can either be orcharhino itself or any attached orcharhino proxy.

  • The OpenSCAP Proxy drop down menu (12) defines the OpenSCAP proxy. This can either be orcharhino itself or any attached orcharhino proxy.

  • The Salt Environment drop down menu (13) defines the stage of the Salt configuration. This allows you to potentially test changes to Salt States on a non production set of hosts first.

  • The Salt Master drop down menu (14) defines the Salt Master. This can either be orcharhino itself or any attached orcharhino proxy.

  • Click the Submit button (15) to save your changes to orcharhino. Remember to also fill out any other desired fields on the following tabs as described below:

Host group Salt States tab
  • The Salt States tab allows you to assign certain Salt States to new and existing hosts.

Host group Ansible roles tab
  • The Ansible roles tab allows you to assign certain Ansible roles to new and existing hosts.

Host group Puppet classes tab
  • The Puppet classes tab allows you to assign certain Puppet classes to new and existing hosts.

Host group network tab
  • The Domain drop down menu (1) allows you to define the domain which new hosts will be part of.

  • The IPv4 Subnet drop down menu (2) allows you to define an IPv4 subnet which new hosts will be part of.

  • The IPv6 Subnet drop down menu (2) allows you to define an IPv6 subnet which new hosts will be part of.

  • The Realm drop down menu (4) allows you to define the realm.

Host group operating system tab
  • The Architecture and Operating system drop down menus (1 and 2) are both required to selected a corresponding installation media.

  • The Media Selection checkbox (3) allows you to choose between either synced content or all media to boot from. Selecting synced content allows you to use certain synchronized repositories to install the operating system without requiring any additional installation media. This is currently only possible for CentOS, though Red Hat offers special Kickstart repositories for RHEL, too.

    To make use of this feature for CentOS, set the major version of the operating system to 7 without setting any minor version.

    Verify this by navigating to Content > Products >> CentOS7 > Repositories > OS Base. Your product and repository names may vary, but it will show you Bootable: true on the bottom of the page.

    Selecting synced content offers two advantages. First, it does not require you to have an additional bootable .iso image uploaded to orcharhino. Second, you already have the exact version of packages installed after your deployment has finished as is provided in the selected content view. There will be no need to immediately patch and update your system or solve dependency issues if there are newer packages installed from the .iso image than there are available in the selected content view.

    Choosing all media allows you to select a traditional installation media in form of an .iso file.

  • The Media drop down menu (4) allows you to select an installation media corresponding to the choices made above. This field will allow you to select a repository if you’ve selected synced content in the field above.

  • The Partition Table drop down menu (5) allows you to select a partition table based on the selected operating system.

  • The PXE loader drop down menu (6) defines the method of booting your host. You can choose between iPXE, PXELinux, or Grub to boot, which in turn can be differentiated by BIOS and UEFI variants. Specific provisioning templates are defined for each respective operating system, including provisioning templates, finish templates, and userdata templates.

  • The Root Password field (7) allows you to define a common password for new hosts.

Host group parameters tab
Host group locations tab
  • The locations tab allows you to assign the host group to certain locations. This can be used to deploy hosts based on the same host group in different locations, e.g. data centres.

Host group organizations tab
  • The organizations tab allows you to assign the host group to certain organizations. This can be used to deploy hosts based on the same host group in different organizations, e.g. business units.

Host group activation keys tab

Editing a Host Group

Click the name of a host group in the list of host groups to edit it. Editing a host group is essentially the same as creating a host group, with the difference that fields will be prefilled with the settings of the host group being edited.