This playbook performs a network install of a Bright Cluster head node on a non-cloud machine. As a simple example, it contains the following files.
playbook.yml
requirements-control-node.txt
inventory
hosts
group_vars/head_node
cluster-settings.yml
cluster-credentials.yml
This guide assumes that machines are prepared according to the requirements as specified in the collection on Ansible Galaxy.
Create and activate a virtual environment.
$ python -m venv venv
$ source venv/bin/activate
Install the Python dependencies.
$ pip install -r requirements-control-node.txt
Install Ansible collection.
$ ansible-galaxy collection install brightcomputing.installer100
Starting galaxy collection install process
Process install dependency map
Starting collection install process
( ... )
In addition to the mandatory, top-level parameters, the non-cloud deployment type has multiple unique parameters. See Ansible Galaxy for a comprehensive overview. The non-cloud playbook example sets the following subset of parameters in addition to the mandatory parameters. (also see the YAML configuration files in group_vars/head_node
)
# General cluster settings
external_interface: eth0
external_ip_address: DHCP
external_network_gateway: "{{ ansible_facts[external_interface].ipv4.address }}"
management_interface: eth1
management_ip_address: 10.142.255.254
management_network_baseaddress: 10.142.0.0
external_name_servers: [10.2.200.200]
install_medium: network
install_medium_network_packages:
- "http://example.com/cm-config-cm.all.rpm"
- "http://example.com/cm-config-yum.all.rpm"
# Cluster credentials
mysql_login_user: ! vault <encrypted string>
mysql_login_password: ! vault <encrypted string>
Invoke the playbook and pass it an inventory file specifying a target head_node
host.
$ ansible-playbook -i inventory/hosts playbook.yml
The collection on Ansible Galaxy provides a comprehensive overview of all the options for installing Bright Cluster head nodes.