13.2. Configuring the Foreman Discovery Plug-in

Prerequisites

Ensure the following are correctly configured before you configure the Foreman Discovery plug-in:

  • Ensure that bare-metal provisioning is functional. See Chapter 11, Configuring the Provisioning Environment for more information. To test bare-metal provisioning, create a host entry with a MAC address and power on the system to provision it. After Foreman Discovery is configured, host creation will be automated.
  • The network DHCP server must be able to serve unknown clients and it must point unknown clients to the TFTP server where the discovery image is stored. If Internet Systems Consortium (ISC) DHCP was installed via the capsule installer on the Red Hat Enterprise Linux host, this will already be configured. If you are using a different configuration or a different DHCP server, ensure the nextserver option is configured to return the correct TFTP server, which is under the Red Hat Satellite Server's control.
  • Satellite 6.0 has a template locking capability which prevents some templates from being edited or renamed because the application relies on their presence and name. The locked default PXELinux template prevents the configuration of Discovery. To circumvent this, start a Rails console on the Satellite Capsule and unlock the template, as described below:
    # foreman-­rake console
    > ct = ConfigTemplate.find_by_name("PXELinux global default"); ct.locked = false; ct.save!
    > exit
    

Procedure 13.1. To Configure the Foreman Discovery Plug-in:

  1. Click HostsProvisioning templates and edit the PXELinux global default template. Add the following entries at the end of the template:
    LABEL discovery
    MENU LABEL Foreman Discovery
    MENU DEFAULT
    KERNEL boot/foreman-discovery-image-latest.el6.iso-vmlinuz
    APPEND rootflags=loop initrd=boot/foreman-discovery-image-latest.el6.iso-img root=live:/foreman.iso rootfstype=auto ro rd.live.image rd.live.check rd.lvm=0 rootflags=ro crashkernel=128M elevator=deadline max_loop=256 rd.luks=0 rd.md=0 rd.dm=0 rd.bootif=0 rd.neednet=0 nomodeset selinux=0 stateless foreman.url=FOREMAN_URL
    IPAPPEND 2
    
    The foreman.url option on the APPEND line identifies the location of the Foreman instance. Ensure that this is set correctly in global settings or the discovered hosts will not register to Foreman.
    The IPAPPEND 2 option is important because it adds the BOOTIF=MAC option. This is reported by Facter as discovery_bootif, which is a key fact used for provisioning. It is expected that the interface that it is booted from will be the provisioning interface as well. The same interface is used as the primary interface and is used to retrieve DNS configuration from DHCP.
  2. Set the ONTIMEOUT parameter to discovery to make the foreman.url option the default:
    ONTIMEOUT discovery
    Alternatively, the discovery image can search for a DNS SRV record called _x­foreman._tcp. If the DNS server is configured for this, do not configure the foreman.url option because it will override the DNS SRV record. The following is an example of the configuration for the ISC DNS server:
    _x­foreman._tcp SRV 0 5 443 foreman
  3. Click HostsProvisioning templates and then click Build PXE Default to deploy the configuration file on the TFTP server.

    Important

    The Foreman Discovery image does not support SELinux. Set selinux=0 in the template. The discovery image is read-only.