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 OverviewThe inventory file is an Initialization (INI) formatted file. The basic elements of an inventory file are hosts, properties, and groups.
- A host is defined as a Fully Qualified Domain Name (FQDN). Properties are defined as key=value pairs.
- A property applies to a specific host when it appears on the same line as the host.
- 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.
- A property applies to an entire group when it is defined under a group heading not on the same line as a host.
- Groups of groups are formed using the children keyword. For example, the occne:childrencreates an occne group comprised of several other groups.
- 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).
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).
|
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
|
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:
|
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.
|
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.
|
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.
|
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. |
- 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.