Technical Report Deploying NetApp E-Series with Ansible ... · Deployment Solution Ansible and...

16
t Technical Report Deploying NetApp E-Series with Ansible DevOps Orchestration Solution Frank Poole February 2017 | TR-4574 Implementation Overview and Usage Considerations This document outlines the reference usage of the Ansible DevOps orchestration solution with NetApp ® E-Series storage.

Transcript of Technical Report Deploying NetApp E-Series with Ansible ... · Deployment Solution Ansible and...

t

Technical Report

Deploying NetApp E-Series with Ansible DevOps Orchestration Solution Frank Poole

February 2017 | TR-4574

Implementation Overview and Usage Considerations

This document outlines the reference usage of the Ansible DevOps orchestration solution with

NetApp® E-Series storage.

2 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

TABLE OF CONTENTS

1 Executive Summary.............................................................................................................................. 3

1.1 Introduction .....................................................................................................................................................3

1.2 About NetApp ..................................................................................................................................................3

1.3 About Ansible by Red Hat ...............................................................................................................................3

1.4 Overview of Ansible and NetApp ....................................................................................................................3

2 Solution Architecture ........................................................................................................................... 4

2.1 Ansible Architecture ........................................................................................................................................4

2.2 E-Series SANtricity Web Services Proxy ........................................................................................................7

2.3 NetApp E-Series Storage System ...................................................................................................................7

2.4 NetApp E-Series SANtricity Operating System ...............................................................................................8

3 Integration Solution Overview ........................................................................................................... 10

3.1 Ansible and NetApp Integration Solution ...................................................................................................... 10

3.2 Benefits of the Ansible and NetApp Integration Solution ............................................................................... 10

3.3 Ansible and NetApp Integration: Modules ..................................................................................................... 10

3.4 Ansible and NetApp Integration: Playbooks .................................................................................................. 11

Summary .................................................................................................................................................... 13

References ................................................................................................................................................. 15

NetApp E-Series Documentation ........................................................................................................................... 15

LIST OF TABLES

Table 1) Ansible Features list. ........................................................................................................................................6

Table 2) SANtricity software features .............................................................................................................................9

Table 3) SANtricity modules functions. ......................................................................................................................... 11

Table 4) Glossary of terms. .......................................................................................................................................... 14

LIST OF FIGURES

Figure 1) Ansible Archetecture .......................................................................................................................................5

Figure 2) Example of simple Playbook ...........................................................................................................................5

Figure 3) Example of E-Series Playbook ...................................................................................................................... 13

3 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

1 Executive Summary

1.1 Introduction

This reference document was developed by NetApp to guide successful deployments with E-Series

storage systems to deliver a powerful DevOps orchestration solution with Ansible NetApp modules.

1.2 About NetApp

NetApp creates innovative products: storage systems and software that help customers around the world

store, manage, protect, and retain one of their most precious corporate assets: their data. We are

recognized throughout the industry for continually pushing the limits of today’s technology so that our

customers never have to choose between saving money and acquiring the capabilities they need to be

successful.

We always find ways to enable our customers to do things they couldn’t do before at a speed they never thought possible. We partner with industry leaders to create the most efficient and cost-effective solutions optimized for their IT needs and to deliver to and support them worldwide. Leading organizations worldwide count on NetApp for software, systems, and services to manage and store their data. Customers value our teamwork, expertise, and passion for helping them succeed now and into the future.

For more information, visit http://www.netapp.com.

1.3 About Ansible by Red Hat

Ansible by Red Hat (Ansible) is an open-source software platform for configuring and managing

computers and storage systems and combines multinode software deployment, ad hoc task execution,

and configuration management. It can manage nodes over SSH or over PowerShell. Modules work over

JSON and standard output and can be written in any programming language, making it particularly

extensible. Ansible utilizes playbooks, written in human-readable Yet Another Markup Language (YAML),

to serve as the deployment and orchestration language.

Ansible, Inc. (originally AnsibleWorks, Inc.) was originally set up to commercially support and sponsor

Ansible and was acquired by Red Hat in October 2015. Ansible is included as part of the Fedora

distribution of Linux, owned by Red Hat Inc., and is also available for Red Hat Enterprise Linux, CentOS,

and Scientific Linux through extra packages for Enterprise Linux (EPEL) as well as for other operating

systems.

For more information, visit http://www.ansible.com.

1.4 Overview of Ansible and NetApp

Ansible and NetApp Collaboration: Providing Customers with a Proven Orchestration Storage

Deployment Solution

Ansible and NetApp have collaborated to develop a collection of automation and configuration

management modules to provision, deploy, and manage NetApp E- and EF-Series storage systems.

Extensive development work was done by Ansible developers and qualified by NetApp engineers to make

sure the modules meet the provisioning, replication, and management needs of the NetApp E-Series

customer.

The modules, prefixed with netapp_e, require the SANtricity® Web Services Proxy (WSP) 2.0 to

communicate with the E-Series storage systems. WSP is the E-Series object-oriented API, which allows

users to perform create, read, update, and delete (CRUD) operations on various objects in the storage

system.

Starting with the E2800 platform (11.30 OS), the modules work directly with the storage array, and REST

API requests are handled directly on the storage system. The storage system can still be managed by

4 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

WSP for large-scale deployments. The modules provide idempotent provisioning for volume groups, disk

pools, standard volumes, thin volumes, LUN mapping, hosts, host groups (clusters), volume Snapshot®

copies, consistency groups, and asynchronous mirroring.

Under terms of the agreement, Ansible NetApp E-Series modules are included with and through Ansible

docs.

Why NetApp and Ansible by Red Hat?

Development collaboration makes sure of targeted, quality orchestration modules.

The companies are positioned for success in IT and storage market segments.

Unique enhancements for E-Series storage systems provide seamless operations.

There is seamless integration with Web Services Proxy, the object-oriented API.

Both companies have proven stability and reliability.

The Ansible and NetApp DevOps orchestration solution provides a flexible, scalable, and highly reliable storage deployment and management solution for E-Series storage systems.

Why Choose the Ansible DevOps Orchestration Solution?

Ansible seamlessly unites workflow orchestration with configuration management, provisioning, and application deployment in one easy-to-use and easy-to-deploy platform.

The solution enables a lower cost of ownership and ease of setup by reducing the time to deploy and manage your storage.

The turnkey E-Series modules provide:

Highly customized, storage-specific modules to support E-Series-specific provisioning, replication, and management of storage infrastructure

Full integration with E-Series applications

2 Solution Architecture

2.1 Ansible Architecture Ansible works by connecting to your nodes and pushing out small programs, called Ansible modules, to them. These programs are written to be resource models of the desired state of the system. Ansible then executes these modules and removes them when finished. The library of modules can reside on any machine, and no servers, daemons, or databases are required. Typically, the user works with a favorite terminal program, a text editor, and possibly a version control system to keep track of changes to the content.

Architecture and Attributes Ansible is an agentless tool that runs in a push model. No software is required to be installed on remote machines to make them manageable. Ansible by default manages remote machines over SSH (Linux and UNIX) or WinRM (Windows), using the remote management frameworks that already exist natively on those platforms. Because Ansible runs in an agentless manner, no resources are consumed on managed machines when Ansible is not managing them. These attributes together make Ansible ideal for high-security environments or high-performance cases where there are concerns about stability or permanence of a management agent, but are generally useful attributes in all computing areas, including data storage.

5 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

Figure 1) Ansible architecture.

Playbooks and Roles Ansible performs automation and orchestration of computing environments using playbooks. Playbooks are a YAML definition of automation tasks that describe how a particular piece of automation should be done. Playbooks are written in a descriptive manner that clearly states what each individual component of your infrastructure needs to do, but still allows components to react to discovered information and to operate in concert with each other. An example of a simple playbook is shown in Figure 2.

Figure 2) Example of simple playbook.

Ansible playbooks consist of series of plays that define automation across a set of hosts, known as the inventory. Each play consists of multiple tasks that can target one, many, or all of the hosts in the inventory. Each task is a call to an Ansible module: a small piece of code for doing a specific task. These tasks can be simple, such as placing a configuration file on a target machine or installing a software package. They can be complex, such as provisioning and mapping storage for an entire NetApp E-Series data center.

---

# This playbook uses the win_get_url module to download a simple HTML

file

- name: Download simple web site

hosts: all

gather_facts: false

tasks:

- name: Download simple web site to 'C:\inetpub\wwwroot\ansible.html'

win_get_url:

url:

'https://raw.githubusercontent.com/mywebapp/master/index.html'

dest: 'C:\inetpub\wwwroot\ansible.html'

6 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

Ansible modules are written to allow for easy configuration of a desired state. They check that the task that is specified actually needs to be done before executing it. For example, an Ansible module is defined to create a Dynamic Disk Pool (DDP), but configuration is only done if the DDP is not already created. This desired state configuration, sometimes referred to as idempotency, makes sure that configuration can be applied repeatedly without side effects and that configuration runs quickly and efficiently when it has already been applied. Ansible also supports encapsulating playbook tasks into reusable units called roles. Ansible roles can be used to easily apply common configurations in different scenarios, such as having a common DDP configuration role that may be used in development, test, or production automation.

Advanced Attributes The Ansible language includes a variety of features that also allow for complex orchestration flow, including conditional execution of tasks, the ability to gather variables and information from the remote system, ability to spawn asynchronous long-running actions, ability to operate in either a push or pull configuration, a check mode to test for pending changes without applying change, and the ability to tag certain plays and tasks so that only certain parts of a configuration can be applied. These features allow your applications and environments to be modeled in a logical framework that is easily understood.

Extensibility As noted earlier, tasks in Ansible are performed by Ansible modules: small pieces of code that run on managed hosts. If there is a need for a new module to handle some portion of IT infrastructure that is not covered by Ansible’s already available modules, extending Ansible is easy. Although the modules shipped with Ansible are implemented in Python and PowerShell, Ansible modules can be written in any language and only are required to take JSON as input and produce JSON as output.

Ansible Tower by Red Hat To provide additional control, knowledge, and delegation to automation, Ansible provides Ansible Tower. Tower is a graphically enabled framework accessible through a web interface and a REST API endpoint for Ansible. Tower builds on top of Ansible to bring secure credential storage, built-in delegation and job customization, role-based access control, and centralized logging and auditing for all your automation. Tower includes both a web-based console for end-user use and a fully featured REST API for embedding Ansible Tower into your existing tools and workflows. For more information, see ansible.com/tower.

Ansible is composed of the features listed in Table 1.

Table 1) Ansible features.

Ansible Feature Description

Module

Reusable, standalone scripts that can be executed directly on remote hosts or through playbooks. Modules can control system resources such as services, packages, or files and can execute system commands. Implemented in Python and PowerShell but are extensible.

Playbook A definition of step-by-step sequence of automation tasks (modules) that serves as deployment and orchestration language. Implemented in YAML.

Extensibility

The ability to implement additional modules in any programming language, which is only required to take JSON as input and produce JSON as output.

Tower Tower is a GUI framework accessible through a web interface and a REST API endpoint for Ansible.

7 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

2.2 E-Series SANtricity Web Services Proxy

The NetApp Web Services Proxy provides access through standard HTTPS mechanisms for configuring

management services for E-Series NetApp storage arrays. You can install the Web Services Proxy on

both Linux machines and Windows machines. Because the NetApp Web Services Proxy satisfies client

requests by collecting data or executing configuration change requests to a target storage array, the

NetApp Web Services Proxy module issues SYMbol requests to the target storage arrays.

The NetApp Web Services Proxy provides a REST-style API for managing NetApp storage array

controllers. The API enables you to integrate array management into other applications or ecosystems.

The Web Services Proxy Array Manager complements the API as a management and debugging tool. If

you are having problems scripting array commands, you can check the status of a storage array in the

Array Manager. The Web Services Proxy is free software available at the NetApp NetApp Software

Download site.

NetApp Web Services Proxy Interfaces The Web Services Proxy provides a REST-style interface for accessing common configuration operations and retrieving basic configuration data, status, and statistics. For more information about the interface, go to the NetApp Web Services Proxy Developer Guide at https://<nnn.nnn.nnn.nnn>:8443/docs, where nnn.nnn.nnn.nnn represents the host server.

NetApp Web Services Proxy APIs The Storage Management Web Services Proxy runs commands on the target controller. The REST-style API enables you to manage storage system objects, including: • Volume I/O statistics • Snapshot volumes

• Disk drives

• Snapshot images

• Host types • Thin-provisioned volumes

• Volumes

• Volume copy jobs

• Volume mappings

• Hosts

• Snapshot groups

• LUN mapping

• Storage arrays

• Host groups

• Disk statistics

• Hardware inventory

• Volume statistics

• Storage pools

For a complete list of all endpoints, see the API documentation. You can access the API documentation at http://localhost:8080/docs/rest/index.html on the host system.

2.3 NetApp E-Series Storage System

The NetApp E-Series storage system, including the new E2800, delivers configurable, streamlined

performance for midsize application-driven SAN storage environments.

The scalable E-Series provides application-driven storage for remote, branch, and midsize organizations.

Configurable with a 2U/12-disk or 4U/60-disk shelf and three forms of connectivity—FC, iSCSI, and

SAS—the E-Series integrates with key applications such as VMware, Exchange, SQL Server, and Oracle

systems.

With the E-Series, you can:

Gain best-in-class performance efficiency for a wide range of database and other transactional applications.

Reduce the cost and complexity of high-throughput data management through a configurable architecture that is easy to use and install.

8 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

Attain streamlined high performance with low latency and high bandwidth and IOPS.

Achieve seamless operations with flexible application integration.

Scale capacity as needed to support business growth.

All NetApp E-Series systems uses the robust, easy-to-use, and lightweight NetApp SANtricity storage

management software. This software enables performance efficiency, dynamic drive rebalancing, RAID

management, intelligent cache tiering, and extended data protection, including data replication and

disaster recovery.

Overview

NetApp E-Series storage systems offer all-HDD, all-flash, and hybrid configuration options to address

wide-ranging requirements with balanced performance that is equally adept at handling throughput for

sequential I/O applications and high-IOPS requirements for transactional databases. The E-Series brings

together the following advantages:

Modular host interface flexibility (SAS, FC, iSCSI, and InfiniBand)

Excellent storage density

High reliability

Intuitive management

The system is perfectly suited for data-intensive solutions, high-bandwidth-intensive streaming

applications, transaction-intensive workloads, and high-performance file system requirements without

sacrificing simplicity and efficiency. In addition, its fully redundant I/O paths, advanced protection

features, and extensive diagnostic capabilities deliver a high level of availability, integrity, and security.

NetApp E2800 Storage System

The NetApp E2800 storage system offers all-flash and hybrid configuration options in order to streamline

IT infrastructure and drive down costs. E2800 systems are purpose-built to optimize performance for

mixed workloads. A next-generation controller that is built on Intel processor technology, along with a

12Gb SAS infrastructure, improves IOPS and throughput.

The E2800 offers an improved user experience with an on-box, web-browser-based interface that is

modern, simple, and clean. The intuitive interface of the E2800 simplifies configuration and maintenance

while providing enterprise-level storage capabilities to deliver consistent performance, data integrity, and

security.

The E2800 offers multiple form factors and drive technology options:

The ultradense 60-drive system shelf supports up to 600TB in 4U with either 2.5-inch or 3.5-inch drives.

The 24-drive system shelf combines low power consumption and exceptional performance density with its high-performance 2.5-inch drives.

The 12-drive shelf provides both performance and capacity, with either 2.5-inch SSDs or 3.5-inch drives.

For complete information about the NetApp E2800, refer to the NetApp E2800 Technical Specifications.

2.4 NetApp E-Series SANtricity Operating System The SANtricity operating system (OS) enables the user to perform all E-Series tasks while the storage remains online, with complete read and write data access. This capability enables storage administrators

9 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

to make configuration changes, perform maintenance, or expand storage capacity without disrupting I/O to attached hosts. These online capabilities include the following:

Dynamic Disk Pools (DDP)

Dynamic capacity expansion (DCE)

Dynamic RAID-level migration (DRM)

Dynamic volume expansion (DVE)

Dynamic segment-size migration (DSS)

Nondisruptive controller firmware and drive firmware upgrades

For more information about the NetApp SANtricity operating system, refer to the NetApp E-Series SANtricity Software datasheet.

SANtricity Software Features

Table 2 lists the SANtricity software features available with all E-Series and EF-Series storage systems.

Table 2) SANtricity software features.

Feature Function

High Availability

Dual I/O path protection Sustain availability and load balancing in the event of path failures.

Mirroring Get synchronous and asynchronous volume mirroring with consistency groups.

Data Protection

Dynamic Disk Pools Dynamic Disk Pools (DDP) enables dynamic rebalancing of drive-count changes and increased data protection.

RAID levels 0, 1, 3, 5, 6, 10 Multiple RAID levels offer the flexibility to optimize for your workloads, and they can be changed on the fly.

Data assurance Support for T10-PI standard.

Proactive drive health monitoring Detect issues before a drive fails.

Background media scans Background media scans proactively check drives for media defects and initiate repairs.

Snapshot Create a point-in-time image of data or a set of related data volumes.

Volume copy Create a complete physical copy (clone) of a volume in a storage system.

Diagnostic

Recovery Guru Provides troubleshooting assistance and procedure guidance.

Performance

SSD cache Achieve automatic serving of high-reference data by up to 5TB of SSD using data-driven caching.

10 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

3 Integration Solution Overview

3.1 Ansible and NetApp Integration Solution

Ansible and NetApp have partnered to develop a collection of automation and configuration management

modules to easily provision, deploy, and manage NetApp E- and EF-Series storage systems. Extensive

development work was done by Ansible developers and qualified by NetApp engineers to make sure the

modules meet the provisioning, replication, and management needs of the NetApp E-Series customer.

3.2 Benefits of the Ansible and NetApp Integration Solution

Key Benefits

The Ansible and NetApp solution provides a flexible, scalable, and highly reliable storage deployment and management solution for E-Series storage systems.

Ansible seamlessly unites workflow orchestration with configuration management, provisioning, and application deployment in one easy-to-use and easy-to-deploy platform.

Highly customized, storage-specific modules to support E-Series specific provisioning, replication, and management of storage infrastructure.

The solution enables a lower cost of ownership and ease of setup by reducing the time to deploy and manage your storage.

Development partnership makes sure of targeted, quality storage automation modules.

There is seamless integration with the E-Series object-oriented API.

3.3 Ansible and NetApp Integration: Modules

Ansible ships with a number of core modules (called the module library) that can be executed directly on remote hosts or through playbooks. Users can also write their own modules. These modules can control system resources such as services, packages, or files or handle executing system commands. These are modules that the core Ansible team maintains and always ship with Ansible itself.

Ansible modules are reusable, standalone Python scripts that can be used by the Ansible API or by the Ansible or Ansible playbook programs. They return information to Ansible by printing a JSON string to stdout before exiting.

NetApp E-Series Ansible Modules

To make sure of compatibility and ease of use, NetApp and Ansible have collaborated to create a series of prebuilt modules for managing E-Series storage systems. They are available as modules that are shipped with Ansible. Extras are mostly maintained by the community. Popular extras modules can be promoted to core modules over time.

The NetApp E-Series modules, prefixed with netapp_e, are built to support the SANtricity storage platform and require the SANtricity Web Services Proxy. Starting with the E2800 platform (11.30 OS), the

11 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

modules work directly with the storage array. Starting with this platform, REST API requests are handled directly on the box. The array can still be managed by proxy for large-scale deployments.

The available modules for NetApp E-Series are detailed in Table 3 and are available through Ansible docs.

Table 3) SANtricity modules functions.

Module Name E-Series SANtricity Function

netapp_e_facts Get facts about NetApp E-Series arrays

netapp_e_auth Set or update the password for a storage array

netapp_e_storage_system Manage all the accessible arrays

netapp_e_storagepool Create or remove disk groups and disk pools

netapp_e_volume Create or remove volumes (standard and thin)

netapp_e_host Create, update, or remove hosts

netapp_e_hostgroup Create, update, or remove host groups

netapp_e_lun_mapping Create or remove volume to host mappings

netapp_e_amg Create, remove, and update asynchronous mirror groups

netapp_e_amg_role Update roles of a storage array within an asynchronous mirror group

netapp_e_amg_sync Initialize, suspend, and resume an asynchronous mirror group

netapp_e_flashcache Create or remove SSD caches

netapp_e_snapshot_volume Create, update, or remove Snapshot volumes

netapp_e_snapshot_group Create, update, or delete Snapshot groups

netapp_e_snapshot_images Create and delete Snapshot images on Snapshot groups

netapp_e_volume_copy Create and delete Snapshot images on volume groups

3.4 Ansible and NetApp Integration: Playbooks

Playbooks are Ansible’s configuration, deployment, and orchestration language. They can describe a policy you want your remote systems to enforce or a set of steps in a general IT process. Playbooks are

12 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

simple, human-readable descriptions in YAML syntax containing the task workflows (modules) and serve as a configuration, deployment, and orchestration language.

Although there are no preconfigured playbooks for NetApp E-Series modules, it is easy to create your own custom task workflows in YAML format.

Playbook Language

Playbooks are expressed in YAML format and have a minimum of syntax, which intentionally tries not to be a programming language or script, but rather a model of a configuration or a process.

Each playbook is composed of one or more plays in a list. The goal of a play is to map a group of hosts to some well-defined roles, represented by things Ansible calls tasks. At a basic level, a task is nothing more than a call to an Ansible module.

.

By composing a playbook of multiple plays, it is possible to orchestrate multimachine deployments, running certain steps on all machines in a particular group, then certain steps on certain storage systems, then more commands back on the group, and so on.

Plays are more or less a sports analogy. You can have quite a lot of plays that affect your systems to do different things. It’s not as if you were just defining one particular state or model, and you can run different plays at different times.

Figure 3 shows an example of what an E-Series playbook might look like in YAML format. Note that the file begins with ---. This is a requirement for YAML to interpret the file as a proper document. YAML allows multiple documents to exist in one file, each separated by ---, but Ansible only requests one per file, so this should only be present at the top of the file.

YAML is very sensitive to whitespace and uses it to group different pieces of information together. Only spaces should be used, rather than tabs, and consistent spacing must be used in order for the file to be read correctly. Items at the same level of indentation are considered sibling elements.

Items that begin with a - are considered list items, and items that have the format of key:

value operate as hashes or dictionaries.

YAML documents basically define a hierarchical tree structure with the containing elements further to the left.

On the second line is -name: SANtricity Pool. As described earlier, this is a list item, but since it is

at the leftmost level, it is also an Ansible play. Plays are basically groups of tasks that are performed on a certain set of hosts to allow them to fulfill the function you want to assign to them. Each play must specify a host or group of hosts, as shown in Figure 3.

The key vars: defines a set of variables. Ansible uses variables to enable more flexibility in playbooks.

Variables can be used to loop through a set of given values or define specific information, like the IP address of a host, for example.

Next are tasks, which contain lists (starts with a “-“) and key value pairs. The task calls an Ansible module

such as netapp_e_storage_system and specific variables to be used by the module to perform a set

of defined functions. The called variables are defined by “{{ }}”. Multiple tasks can be defined in a single

13 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

playbook, which in turn can call the same set of variables. Therefore, it is only necessary to define a single set of variables to be used by multiple tasks.

Figure 3) Example of E-Series playbook.

For more information about YAML and NetApp E-Series playbooks, see the NetApp storage modules readme file on Github.

Summary

NetApp E-Series storage systems deliver high-performance file systems, bandwidth-intensive streaming applications, and transaction-intensive workloads such as data analytics.

Ansible by Red Hat is an open-source software platform for configuring and managing computers and storage systems.

Together, NetApp and Ansible have developed a collection of automation and storage configuration management modules to enable the provisioning, deployment, and management of NetApp E-Series storage systems. These modules have been developed to communicate with NetApp E-Series storage systems using the REST API interface SANtricity Web Services Proxy or directly with the storage array

beginning with the E2800 platform. The modules are qualified by NetApp engineering to make sure they

meet the provisioning, replication, and general management needs of the E-Series customer.

Ansible modules are units of tasks that Ansible sends out to remote machines. Modules can be used by the Ansible API or by the Ansible playbook. Modules can be written in any standard scripting language (such as Python, Perl, Ruby, bash, and so on). One of the features of modules is idempotency, which means that even if an operation is repeated multiple times, it always places the system into the same state.

Playbooks are a YAML definition file of automation tasks (modules) that describe how a particular piece of automation should be done and are written in a descriptive manner that clearly states what each individual component of your infrastructure needs to do.

14 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

Using Ansible modules and playbooks to configure NetApp E-Series storage systems provides a huge time savings in configuring the provisioning and replication tasks associated with setting up an E-Series storage infrastructure. When tasks are simplified into modules and orchestrated using playbooks, provisioning and replication tasks can be automated in a step-by-step process that can:

Manage complexity by simplifying deployments and monitoring of storage networks

Save time by reducing operational costs and overhead while increasing efficiency and utilization

Work with proven processes and reuse policies and manifests that are deemed effective

Eliminate the need for professional services or IT subject matter experts

Reduce downtime due to interoperability issues or misconfigurations after systems are placed into production

Key Benefits of Ansible and NetApp Integration

Ansible seamlessly unites workflow orchestration with configuration management, provisioning, and application deployment in one easy-to-use and easy-to-deploy platform.

The solution enables a lower cost of ownership and ease of setup by reducing the time to deploy and manage your storage.

The turnkey E-Series modules provide:

Highly customized, storage-specific modules to support E-Series-specific provisioning, replication, and management of storage infrastructure

Full integration with E-Series applications

Table 4 is a glossary of terms used in the Ansible and NetApp solution.

Table 4) Glossary of terms.

Term Definition

DevOps An enterprise software development phrase (development and operations) used to mean a type of agile relationship between developers and IT operations.

Idempotent The ability to make the same operation or service call repeatedly while producing the same result.

JSON JavaScript Object Notation, an easy to read and write data interchange format.

Module Ansible script that can control system resources such as services, packages, and files or execute system commands.

Orchestration Automating the execution of a series of tasks or processes to eliminate repetitive steps.

Playbook A step-by-step sequence of automation tasks that serves as deployment and orchestration language.

Python High-level programming language designed to be easy to read and simple to implement.

15 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

Term Definition

SSH Secure Shell, a cryptographic network protocol for operating network services securely over an unsecured network.

WinRM Windows Remote Management, a feature of Microsoft Windows that allows administrators to remotely run management scripts.

YAML Yet Another Markup Language, an easy to read and write data serialization standard for all programming languages.

References

The following references were used in this document: Ansible Overview https://www.ansible.com/how-ansible-works Ansible Resources https://www.ansible.com/resources Ansible in Depth White Paper https://cdn2.hubspot.net/hub/330046/file-480366556-pdf/pdf_content/Ansible_in_Depth.pdf?t=1476322233429 Ansible Tower User Guide Overview http://docs.ansible.com/ansible-tower/latest/html/userguide/overview.html

NetApp E-Series Documentation

Refer to the following links for SANtricity Web Services Proxy documentation:

NetApp SANtricity Web Services Proxy 2.0 Installation Guide NetApp SANtricity Web Services Proxy 2.0 User Guide

Refer to the following link for NetApp E-2800 Series documentation:

http://mysupport.netapp.com/documentation/productlibrary/index.html?productID=62265

Refer to the following link for E-Series disk shelves documentation:

http://mysupport.netapp.com/documentation/productlibrary/index.html?productID=61478

16 Deploying NetApp E-Series with Ansible DevOps Orchestration Solution ©2017 NetApp, Inc. All rights reserved.

Refer to the Interoperability Matrix Tool (IMT) on the NetApp Support site to validate that the exact product and feature versions described in this document are supported for your specific environment. The NetApp IMT defines the product components and versions that can be used to construct configurations that are supported by NetApp. Specific results depend on each customer’s installation in accordance with published specifications.

Copyright Information

Copyright © 1994–2017 NetApp, Inc. All rights reserved. Printed in the U.S. No part of this document covered by copyright may be reproduced in any form or by any means—graphic, electronic, or mechanical, including photocopying, recording, taping, or storage in an electronic retrieval system—without prior written permission of the copyright owner.

Software derived from copyrighted NetApp material is subject to the following license and disclaimer:

THIS SOFTWARE IS PROVIDED BY NETAPP “AS IS” AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL NETAPP BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

NetApp reserves the right to change any products described herein at any time, and without notice. NetApp assumes no responsibility or liability arising from the use of products described herein, except as expressly agreed to in writing by NetApp. The use or purchase of this product does not convey a license under any patent rights, trademark rights, or any other intellectual property rights of NetApp.

The product described in this manual may be protected by one or more U.S. patents, foreign patents, or pending applications.

RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.277-7103 (October 1988) and FAR 52-227-19 (June 1987).

Trademark Information

NETAPP, the NETAPP logo, and the marks listed at http://www.netapp.com/TM are trademarks of NetApp, Inc. Other company and product names may be trademarks of their respective owners.