Managing storage configurations manually at scale is quite tedious, slow and prone to user error. As enterprises move towards adopting newer data-center technologies, the automation of such configuration tasks becomes essential. Software defined storage such as Datera performs both the tasks of storage node lifecycle management and storage configuration management, hence the need to automate the configuration management across such clusters to easily provision, deploy and manage the storage nodes.

What is Ansible?

Ansible is an open-source automation tool, or platform, used for IT tasks such as configuration management, application deployment, intra-service orchestration, and provisioning.

The Ansible system consists of:

  • CONTROLLER : One or few servers installed with Ansible packages and controller configuration.
  • CLIENTS : The nodes on which the IT provisioning are being performed upon.

The Ansible framework consists of:

  • MODULES : These programs are written to be resource models of the desired state of the system. They perform individual IT automation tasks and are typically published by different OS, storage vendors etc.
  • PLAYBOOK: Playbooks contain the steps which the user wants to execute on a particular machine. Playbooks are YAML file describing series of tasks to perform for datacenter provisioning workflows. The tasks defined in a playbook are executed sequentially.

Datera Ansible Module Architecture

The Datera Ansible package consists of Datera Ansible modules and the Datera python SDK, which provide interfaces for various REST API calls to the Datera Storage Cluster such as system settings, provision storage, set up failure domains, cloud backup management, IP Pool management etc. Datera has been actively developing these python modules to help in performing the aforementioned tasks.

The Ansible Clients are customer specific application nodes, that require ISCSI/NVMEoF interfaces to connect to the Datera clusters for the data-path. Once password-less ssh is enabled on the clients, the ansible playbook can be used to discover and login to the storage target/s on the Datera storage cluster.

Datera Module Task Design

  1. Task Module: Runs the task and sets the required parameters to be passed as a hook to the Datera task interface function. Returns the response for the task as Pass or Fail and if the state was changed or unchanged.
  2. Datera Task Interface Module: The Datera task interface module uses the Datera python SDK to perform the requested storage configuration task, performs Error handling and returns the results of the task to the Datera Task Module.

The Datera Ansible Modules support the following features to help with the automation of configuration management of Datera Storage Clusters:

  1. System Settings : Helps configure the system settings for a Datera storage cluster to configure the NTP server, the DNS server, IP Pools for the cluster and Cluster-wide data efficiency settings.
  2. Node Lifecyle Management: Adding new storage nodes to the cluster, temporary offline of the nodes from the cluster & removal of storage nodes from the system.
  3. Storage Provisioning : Creation of AppInstance, create/extend volumes and target assignment for the consistency groups.
  4. Cloud Backup Management: Create and manage the remote cloud backup end-points.

Ansible Support Solution Benefits:

    • Multiple Datera clusters can be managed by a single playbook on an Ansible controller using the Universal Datera Configuration details.
    • Datera Ansible modules help configure the Datera storage clusters directly, as opposed to using a intermediary proxy module to hook into the Datera python SDK for REST API calls.
    • Reduce inconsistencies , TCO and ease of configuration by reducing the time to deploy and manage software defined storage systems.

For more general Datera information, we recommend reading our white papers:

Built for Performance

Built for Constant Change

Built for Autonomous Operations

Built for Continuous Availability

For detailed discussions around Ansible, or automation, please reach us at and share any specific capability you would like to learn more about. We look forward to the opportunity!

*Special thanks to Samarth Kowdle, for his development contributions on our Ansible Modules!