Ansible Playbook Overview
Deploying and managing BeeGFS HA clusters using Ansible.
Overview
The previous sections walked through the steps needed to build an Ansible inventory representing a BeeGFS HA cluster. This section introduces the Ansible automation developed by NetApp to deploy and manage the cluster.
Ansible: Key Concepts
Before proceeding, it is helpful to be familiar with a few key Ansible concepts:
-
Tasks to execute against an Ansible inventory are defined in what is known as a playbook.
-
Most tasks in Ansible are designed to be idempotent, meaning they can be run multiple times to verify the desired configuration/state is still applied without breaking things or making unnecessary updates.
-
-
The smallest unit of execution in Ansible is a module.
-
Typical playbooks use multiple modules.
-
Examples: Download a package, update a config file, start/enable a service.
-
-
NetApp distributes modules to automate NetApp E-Series systems.
-
-
Complex automation is better packaged as a role.
-
Essentially a standard format to distribute a reusable playbook.
-
NetApp distributes roles for Linux hosts and BeeGFS file systems.
-
BeeGFS HA role for Ansible: Key Concepts
All the automation needed to deploy and manage each version of BeeGFS on NetApp is packaged as an Ansible role and distributed as part of the NetApp E-Series Ansible Collection for BeeGFS:
-
This role can be thought of as somewhere between an installer and modern deployment/management engine for BeeGFS.
-
Applies modern infrastructure as code practices and philosophies to simplify managing storage infrastructure at any scale.
-
Similar to how the Kubespray project allows users to deploy/maintain an entire Kubernetes distribution for scale out compute infrastructure.
-
-
This role is the software-defined format NetApp uses to package, distribute, and maintain BeeGFS on NetApp solutions.
-
Strive to create an “appliance-like” experience without needing to distribute an entire Linux distribution or large image.
-
Includes NetApp authored Open Cluster Framework (OCF) compliant cluster resource agents for custom BeeGFS targets, IP addresses, and monitoring that provide intelligent Pacemaker/BeeGFS integration.
-
-
This role is not simply deployment "automation" and is intended to manage the entire file system lifecycle including:
-
Applying per-service or cluster-wide configuration changes and updates.
-
Automating cluster healing and recovery after hardware issues are resolved.
-
Simplifying performance tuning with default values set based on extensive testing with BeeGFS and NetApp volumes.
-
Verifying and correcting configuration drift.
-
NetApp also provides an Ansible role for BeeGFS clients, that can optionally be used to install BeeGFS and mount file systems to compute/GPU/login nodes.