10. Appendix - A Using the ‘gen’ Program

The ‘gen’ program is the primary interface to the OpenPOWER Cluster Genesis software. Help can be accessed by typing:

gen -h
gen --help

Usage; gen [–help | -h] <command> [<args>]

Auto completion is enabled for the gen functions.

The gen program provides the following functions;

  • log Displays the log file associated with Genesis network setup and container install.

  • logc Displays the Genesis container log which logs activities associated with OS deployment and cluster node configuration.

  • loga [<-f | +F>] Displays the log file generated by Genesis’ ansible playbooks. Normally displays the end of the file. By using the -f or +F options, you or another user can monitor (ie tail) the progress of the Genesis installation from another window.

  • status Displays information about the status of the Genesis installation including information about the Genesis container, the bridges Genesis creates in the deployer and information about the state of the DHCP server (including leased addresses) and information about the cobbler program including operating systems deployed and in progress.

  • deploy [<-p>] This command runs all of the ansible playbooks necessary to configure the management switch, create the container for Genesis’ deploy functions to run in and deploy operating systems to the cluster nodes. When run with the -p option, Genesis will prompt you if you want to continue after each playbook runs. The playbooks run are;

    • setup
    • enable-mgmt-switch
    • lxc-create
    • install_1
    • install_2

    Note that these playbooks can be run individually. ie; gen enable-mgmt-switch. This can be useful when debugging or if you do not have time to complete the entire deploy process for instance.

  • deploy-passive [<-p>] This command performs the same functions as the deploy command, but does not access the management switches.

  • deploy-passive-retry [<-p>] If deploy-passive fails due to incomplete MAC address table(s) this will reset all servers (power off / set bootdev pxe / power on) to allow the user another chance to collect MAC address tables.

  • enable-mgmt-switch Runs the enable-mgmt-switch ansible playbook. Prepares the management switch for use by Genesis.

  • lxc-create Runs the lxc-create ansible playbook. Creates the container for Genesis to run in and installs the needed software.

  • install_1 Runs the install_1 ansible playbook which performs the first phase of OS deployment. Node discovery and mac address association is performed during this phase. If introspection is enabled, it is run during this step.

  • install_2 Runs the install_2 ansible playbook which performs the second phase of OS deployment. Actual OS deployment occurs during this phase.

  • config.yml Displays the config.yml file.

  • inventory Displays the inventory.yml file created by Cluster Genesis.

  • show_mgmt_switches Displays select configuration information of a cluster management switch. Information includes display of management interfaces, configuration of the port connecting to the Genesis deployer node and vlan information for the Genesis VLANs. If multiple management switches are defined, a list of switches is displayed and the user is prompted to select a switch.

  • –help or -h Displays help for the gen program

  • post-deploy [<-p>] This command runs all of the ansible playbooks which perform post OS deploy activities. These activities include configuration of network interfaces on cluster nodes, copying of SSH keys to cluster nodes, configuring VLANs on data switches and running ‘bootstrap’ scripts on cluster nodes. When run with the -p option, Genesis will prompt you if you want to continue after each playbook runs. The following playbooks are run;

    • ssh_keyscan
    • gather_mac_addresses
    • set_data_switch_config
    • configure_operating_systems
  • ssh_keyscan Runs the ssh_keyscan ansible playbook. Gathers hostkeys from all client nodes and appends the hostkeys to the known_hosts file on each client node.

  • gather_mac_addresses Runs the gather_mac_addresses ansible playbook. Gathers mac addresses from data switches for all client node interfaces. Genesis uses this information to accurately rename client node interfaces.

  • set_data_switch_config Runs the set_data_switch_config ansible playbook. Configures the cluster data switches including LAG, MLAG and VLANs.

  • configure_operating_systems Runs the configure_operating_systems ansible playbook. Configures client node network interfaces, transfers SSH keys to client nodes, copies the inventory.yml file to select cluster nodes and runs bootstrap scripts on specified cluster nodes.

  • post-deploy-passive [<-p>] This command performs the same functions as the post-deploy command, but does not access the data switches.