Inventory File Preparation

Introduction

OCCNE Installation automation uses information within an OCCNE Inventory file to provision servers and virtual machines, install cloud native components, as well as configure all of the components within the cluster such that they constitute a cluster conformant to the OCCNE platform specifications. To assist with the creation of the OCCNE Inventory, a boilerplate OCCNE Inventory is provided. The boilerplate inventory file requires the input of site-specific information.

This document outlines the procedure for taking the OCCNE Inventory boilerplate and creating a site specific OCCNE Inventory file usable by the OCCNE Install Procedures.

Inventory File Overview

The inventory file is an Initialization (INI) formatted file. The basic elements of an inventory file are hosts, properties, and groups.

  1. A host is defined as a Fully Qualified Domain Name (FQDN). Properties are defined as key=value pairs.
  2. A property applies to a specific host when it appears on the same line as the host.
  3. Square brackets define group names. For example host_hp_gen_10defines the group of physical HP Gen10 machines. There is no explicit "end of group" delimiter, rather group definitions end at the next group declaration or the end of the file. Groups can not be nested.
  4. A property applies to an entire group when it is defined under a group heading not on the same line as a host.
  5. Groups of groups are formed using the children keyword. For example, the occne:childrencreates an occne group comprised of several other groups.
  6. Inline comments are not allowed.

Table B-1 Base Groups

Group Name Description/Comments
host_hp_gen_10 The list of all physical hosts in the OCCNE cluster. Each host in this group must also have several properties defined (outlined below).
  • ansible_host: The IP address for the host's teamed primary interface. The occne containers use this IP to communicate with the host
  • ilo: The IP address of the host's iLO interface. This IP is manually configured as part of the Configure Addresses for RMS iLOs, OA, EBIPA process.
  • mac: The MAC address of the host's network bootable interface. This is typically eno5 for Gen10 RMS hardware and eno1 for Gen10 bladed hardware. MAC addresses must use all lowercase alphanumeric values with a dash as the separator. To get the mac address, login to the above ilo address with ssh, the username and password are the pxe_install_lights_out_usr and pxe_install_lights_out_passwd, which are created in the Configure Addresses for RMS iLOs, OA, EBIPA process. After login, run command "show /system1/network1/Integrated_NICs", Port1NIC_MACAddress is for eno1, Port5NIC_MACAddress is for eno5.

The default configuration of a node in this group is for a Gen 10 RMS with modules providing boot interfaces at Linux interface identifiers 'eno5' and 'eno6'. For Gen 10 bladesthe boot interfaces are usually 'eno1' and 'eno2' and should be specified by adding the following properties (outlined below).

  • pxe_config_ks_nic: The bootable interface to initiate the installation process (for Gen10 blades ='eno1')
  • pxe_config_nic_list: The set of interfaces to team together (for Gen10 blades ='eno1,eno2')
host_kernel_virtual The list of all virtual hosts in the OCCNE cluster. Each host in this group must have the same properties defined as above with the exception of the ilo
  • ansible_host:The IP address for the host's primary interface. The occne containers use this interface to communicate with the host.
  • kvm_host: The physical host name.fqdn running KVM that hosts this VM host (ex. for guest db-10.icemark.lab.us.oracle.com the kvm_host is db-1.icemark.lab.us.oracle.com). Bastion-1 should be on db-1, bastion-2 should be on db-2.
  • mac: Always begin with 52-54-00 with the last 3 hex values being unique within the hosts.ini file (ex: mac=52-54-00-c1-8e-38)
  • signal_host: The Signalling network IPv4 address assigned to the MySQL NDB SQL Nodevirtual machines. : The ILO network IPv4 address assigned to the Bastionhost virtual machines. This IP is manually assigned and should be on the same network as the host_hp_gen_10/9/8 node iLo address except for the final octet. For ex:ample: If the kvm_host=db-2 and the iLo field in host_hp_gen_10/9/8 for db-2 is set to 192.168.20.101, this value can be set to 192.168.20.201. (be sure .201 is not being used within that network by executing a ping on that address from the host node...db-1 in this example...the ping should fail).
  • oam_host: The OAM network IPv4 address assigned to the Bastionhost virtual machines.
kvm_hosts:children The list of all physical hosts which will be hosting the virtual hosts. This should be the set data_store and kube-master. Do not modify.
occne:children Do not modify the children of the occne
occne:vars This is a list of variables representing configurable site-specific data. While some variables are optional, the ones listed in the boilerplate should be defined with valid values. If a given site does not have applicable data to fill in for a variable, the OCCNE installation or engineering team should be consulted. Individual variable values are explained in subsequent sections.
data_store The list of Storage Hosts
kube-master The list of Master Node hosts where kubernetes master components run.
etcd The list of hosts that compose the etcd server. Should always be an odd number. This set is the same list of nodes as the kube-master
kube-node The list of Worker Nodes. Worker Nodes are where kubernetes pods run and should be comprised of the bladed hosts.
k8s-cluster:children Do not modify the children of k8s-cluster
bastion_hosts The list of Bastion Hosts name.fqdn (ex: bastion-1.icemark.lab.us.oracle.com)

Data Tier Groups

Prerequisites

The MySQL service is comprised of several nodes running on virtual machines on RMS hosts. This collection of hosts is referred to as the MySQL Cluster. Each host in the MySQL Cluster requires a NodeID parameter. Each host in the MySQL cluster is required to have a NodeID value that is unique per site across the MySQL cluster. Additional parameter range limitations are outlined below.

Table B-2 Data Tier Groups

Group Name Description/Comments
mysqlndb_mgm_nodes The list of MySQL Management nodes. In OCCNE 1.0 this group consists of three virtual machines distributed equally among the kube-masternodes. These nodes must have a NodeId parameter defined:
  • NodeId: Parameter must be unique across the MySQL Cluster and have a value between 49 and 255.
mysqlndb_data_nodes_ng0 The list of MySQL Data nodes, In OCCNE 1.2 this group consists of two virtual machine distributed equally among the Storage Hosts. Each VM in this group should belong to the different Storage Hosts. Requires a NodeId parameter.
  • NodeId: Parameter must be unique across the MySQL Cluster and have a value between 1 and 48.
For Ex: NodeId should be assigned with value 1 and 2 [mysqlndb_data_nodes_ng0] db-6.foo.lab.us.oracle.com NodeId=1 db-7.foo.lab.us.oracle.com NodeId=2
mysqlndb_data_nodes_ng1 The list of MySQL Data nodes, In OCCNE 1.2 this group consists of two virtual machine distributed equally among the Storage Hosts. Each VM in this group should belong to the different Storage Hosts. Requires a NodeId parameter.
  • NodeId: Parameter must be unique across the MySQL Cluster and have a value between 1 and 48.
For Ex: NodeId should be assigned with value 3 and 4 [mysqlndb_data_nodes_ng1] db-8.foo.lab.us.oracle.com NodeId=3 db-9.foo.lab.us.oracle.com NodeId=4
mysqlndb_data_nodes The list of MySQL Data node groups. In OCCNE 1.2 this group consists of 2 groups, each groups consists of two virtual machines distributed equally among the Storage Hosts.
mysqlndb_sql_nodes List of MySQL nodes. In OCCNE 1.0 this group consists of two virtual machines distributed equally among the Storage Hosts. Requires a NodeId parameters.
  • NodeId: Parameter must be unique across the MySQL Cluster and have a value between 49 and 255.
mysqlndb_all_nodes:children Do not modify the children of the mysqlndb_all_nodes group.
mysqlndb_all_nodes:vars This is a list of variables representing configurable site-specific data. While some variables are optional, the ones listed in the boilerplate should be defined with valid values. If a given site does not have applicable data to fill in for a variable, the OCCNE installation or engineering team should be consulted. Individual variable values are explained in subsequent sections.
  1. Prior to initiating the procedure steps, the Inventory Boilerplate should be copied to a system where it can be edited and saved for future use. Eventually the hosts.ini file needs to be transferred to OCCNE servers.

Procedure

OCCNE Cluster Name

Create host_hp_gen_10 and host_kernel_virtual group lists

Edit occne:vars

Edit mysqlndb_all_nodes:vars

OCCNE Inventory Boilerplate

In order to provide each OCCNE host with a unique FQDN, the first step in composing the OCCNE Inventory is to create an OCCNE Cluster domain suffix. The OCCNE Cluster domain suffix starts with a Top-level Domain (TLD). The structure of a TLD is maintained by various government and commercial authorities. Additional domain name levels help identify the cluster and are added to help convey additional meaning. OCCNE suggests adding at least one "ad hoc" identifier and at least one "geographic" and "organizational" identifier.

Geographic and organizational identifiers may be multiple levels deep.

An example OCCNE Cluster Name using the following identifiers is below:

  • Ad hoc Identifier: atlantic
  • Organizational Identifier: lab1
  • Organizational Identifier: research
  • Geographical Identifier (State of North Carolina): nc
  • Geographical Identifier (Country of United States): us
  • TLD: oracle.com

Example OCCNE Cluster name: atlantic.lab1.research.nc.us.oracle.com

Using the OCCNE Cluster domain suffix created above, fill out the inventory boilerplate with the list of hosts in the host_hp_gen_10 and host_kernel_virtual groups. The recommended host name prefix for nodes in the host_hp_gen_10 groups is "k8s-x" where x is a number 1 to N. Kubernetes "master" and "worker" nodes should not be differentiated using the host name. The recommended host name prefix for nodes in the host_kernel_virtual group is "db-x" where x is a number 1 to N. MySQL Cluster nodes should not be differentiated using host names.

Edit the values in the occne:vars group to reflect site specific data. Values in the occne:vars group are defined below:

Table B-3 Edit occne:vars

Var Name Description/Comment
occne_cluster_name Set to the OCCNE Cluster Name generated in step 2.1 above.
subnet_ipv4 Set to the subnet of the network used to assign IPs for OCCNE hosts
subnet_cidr Appears this is not used so does not need to be included. If it does need to be included, set to the cidr notation for the subnet. For example /24
netmask Set appropriately for the network used to assign IPs for OCCNE hosts.
broadcast_address Set appropriately for the network used to assign IPs for OCCNE hosts.
default_route Set to the IP of the TOR switch.
name_server 'none'
ntp_server Set to the IP of the TOR switch.
occne_repo_host Set to the hostname of the bootstrap host initially. This defaults to "bootstrap". It can remain as that value or the user can change it to their own specifications but they must adhere to hostname conventions.
occne_repo_host_address Set to the internal (ansible_host) IPv4 address of the occne_repo_host.
pxe_install_lights_out_usr Set to the user name configured for iLO admins on each host in the OCCNE Frame.
pxe_install_lights_out_passwd Set to the password configured for iLO admins on each host in the OCCNE Frame.
ilo_vlan_id Set to the VLAN ID of the ILO network For Ex: 2
ilo_subnet_ipv4 Set to the subnet of the ILO network used to assign IPs for Storage hosts
ilo_subnet_cidr Set to the cidr notation for the subnet. For example 24
ilo_netmask Set appropriately for the network used to assign ILO IPs for Storage hosts.
ilo_broadcast_address Set appropriately for the network used to assign ILO IPs for OCCNE hosts.
ilo_default_route Set to the ILO VIP of the TOR switch.
mgmt_vlan_id Set to the VLAN ID of the Management network For Ex: 4
mgmt_subnet_ipv4 Set to the subnet of the Management network used to assign IPs for Storage hosts
mgmt_subnet_cidr Set to the cidr notation for the Management subnet. For example 29
mgmt_netmask Set appropriately for the network used to assign Management IPs for Storage hosts.
mgmt_broadcast_address Set appropriately for the network used to assign Management IPs for Storage hosts.
mgmt_default_route Set to the Management VIP of the TOR switch.
signal_vlan_id Set to the VLAN ID of the Signalling network For Ex: 5
signal_subnet_ipv4 Set to the subnet of the Signalling network used to assign IPs for Storage hosts
signal_subnet_cidr Set to the cidr notation for the Signalling subnet. For example 29
signal_netmask Set appropriately for the network used to assign Signalling IPs for Storage hosts and MySQL SQL Node VM's.
signal_broadcast_address Set appropriately for the network used to assign Signalling IPs for Storage hosts and MySQL SQL Node VM's.
signal_default_route Set to the Signalling VIP of the TOR switch.
occne_snmp_notifier_destination Set to the address of SNMP trap receiver. For Ex: "127.0.0.1:162"

Table B-4 Edit mysqlndb_all_nodes:vars

Num Var Name Description/Comment
1 occne_mysqlndb_NoOfReplicas Number of Replicas with in the MySQL NDB Cluster. For Ex: 2
2 occne_mysqlndb_DataMemory Size of Data Memory(RAM) assigned to each MySQL Data Nodes. For Ex: 12G

The hosts_sample.ini file is obtained via MOS. It is delivered in the occne-config-<release_number>.tgz file.