Deploy the BeeGFS HA cluster
Specify what tasks should run to deploy the BeeGFS HA cluster using a playbook.
Overview
This section covers how to assemble the standard playbook used to deploy/manage BeeGFS on NetApp.
Steps
Create the Ansible Playbook
Create the file playbook.yml
and populate it as follows:
-
First define a set of tasks (commonly referred to as a play) that should only run on NetApp E-Series block nodes. We use a pause task to prompt before running the installation (to avoid accidental playbook runs), then import the
nar_santricity_management
role. This role handles applying any general system configuration defined ingroup_vars/eseries_storage_systems.yml
or individualhost_vars/<BLOCK NODE>.yml
files. -
Define the play that will run against all file and block nodes:
-
Within this play we can optionally define a set of "pre-tasks" that should run before deploying the HA cluster. This can be useful to verify/install any prerequisites like Python. We can also inject any pre-flight checks, for example verifying the provided Ansible tags are supported:
-
Lastly, this play imports the BeeGFS HA role for the version of BeeGFS you want to deploy:
A BeeGFS HA role is maintained for each supported major.minor version of BeeGFS. This allows users to choose when they want to upgrade major/minor versions. Currently either BeeGFS 7.3.x ( beegfs_7_3
) or BeeGFS 7.2.x (beegfs_7_2
) are supported. By default both roles will deploy the latest BeeGFS patch version at the time of release, though users can opt to override this and deploy the latest patch if desired. Refer to the latest upgrade guide for more details. -
Optional: If you wish to define additional tasks, keep in mind if the tasks should be directed to
all
hosts (including the E-Series storage systems) or only the file nodes. If needed define a new play specifically targeting file nodes using- hosts: ha_cluster
.
Click here for an example of a complete playbook file.
Install the NetApp Ansible Collections
The BeeGFS collection for Ansible and all dependencies are maintained on Ansible Galaxy. On your Ansible control node run the following command to install the latest version:
Though not typically recommended, it is also possible to install a specific version of the collection:
Run the Playbook
From the directory on your Ansible control node containing the inventory.yml
and playbook.yml
files, run the playbook as follows:
Based on the size of the cluster the initial deployment can take 20+ minutes. If the deployment fails for any reason, simply correct any issues (e.g., miscabling, node wasn't started, etc.), and restart the Ansible playbook.
When specifying common file node configuration, if you choose the default option to have Ansible automatically manage connection based authentication, a connAuthFile
used as a shared secret can now be found at <playbook_dir>/files/beegfs/<sysMgmtdHost>_connAuthFile
(by default). Any clients needing to access the file system will need to use this shared secret. This is handled automatically if clients are configured using the BeeGFS client role.