AOS-CX Data Center Automation with Ansible
Our vision at Aruba is accelerating Data Center automation by leveraging the power of AOS-CX. We've developed a set of Ansible workflows that allow for turnkey Day 0 automation of an AOS-CX Data Center deployment. These workflows, using playbooks and inventories, are based on the three Validated Reference Designs (VRDs) below.
The project repository containing these workflows and other relevant files is located on Github:
The VRDs have been posted on the Aruba Airheads Community:
- Architecture I - Campus Attached DC ToR (green box)
- Architecture II - Dedicated Data Center Two-Tier
- Architecture III - Layer 3 Spine/Leaf Topology Dedicated Data Center
These workflows can be run on any Unix-based system.
The Ansible control machine must have Python2.7 or Python3.5+ and at least Ansible 2.8.1 installed. See Ansible Documentation for more information on Ansible installation.
This project requires the AOS-CX Ansible Role to be installed. The easiest way to install the role is by executing the
ansible-galaxycommand on the
$ ansible-galaxy install -r requirements.yml
For more information on how to use the
aoscx_role, visit the page Using the AOS-CX Ansible Role.
This project requires the Python libraries listed below to be installed. The easiest way to install the required libraries is using the
pipcommand on the
$ pip install -r requirements.txt
This project contains multiple inventories, each corresponding to a specific workflow. Which inventory files correspond to which workflows is described in the pages detailing each workflow.
AOS-CX DCN Inventory Plugin
Typically, YAML or INI files are used to define their Ansible inventory. In this project, we use multiple YAML inventory files that correspond to specific workflows. You'll also find in the project an Ansible inventory plugin. An inventory plugin allows you to customize the data source from which an inventory is dynamically generated before the execution of each playbook. We've created the AOS-CX Data Center Networking inventory plugin inventory_plugins/aoscx_dcn_plugin.py, which allows users to input data into an Excel file, from which Ansible then generates inventory information to use to configure devices.
Each workflow uses a specific Excel template to generate Ansible inventory information. These Excel files are located in files/. You can rename the files to your liking. Furthermore, values in these files can (and should) be modified to match your environment and specifications. Once your Excel file is fully defined, you simply need to update the appropriate dynamic inventory file with the name of the inventory plugin, the path to the directory containing the Excel file, and the name of the Excel file to be read, like so:
plugin: aoscx_dcn_plugin # Name of the plugin path_to_inventory: ./files # Directory location of Excel excel_file: dedicated_two_tier_DCN_Settings.xlsx # Name of the Excel
When it comes to playbook execution, you simply specify the aforementioned dynamic inventory file in the
ansible-playbook command with the
ansible-playbook deploy_2tier_dedicated_datacenter.yml -i dynamic_2tier_dedicated_dc_inventory.yml
Making The Inventory Your Own
In this project, we have two options for defining the environment. We can use either a static YAML inventory file and modify the variables or the aoscx_dcn_plugin in conjunction with an Excel template. Either approach works with the provided playbooks, but you should choose one or the other.
Each inventory provided is intended as an example. You are encouraged to customize IP addressing and interface values for your environment.
Note that these inventories logically group switches by VSX pairs and assume that each VSX pair of access/leaf switches is one group. The default "rack" nomenclature in the inventory is so because two VSX-paired switches are often placed in the same rack, with that rack containing just that one VSX pair. This is just one approach to grouping VSX pairs; you can change the "rack#" nomenclature in the example inventory files to your liking as long as you keep the names consistent throughout the inventory.
aoscx_dcn_plugin + Excel Templates
Each workflow has an associated Excel template in files/. In the Excel template, modify the values to match the desired configuration parameters for your environment. Note that certain cells in the Excel file are used by the aoscx_dcn_plugin to interpret the spreadsheet; these cells should not be touched. Other cells, containing sample values, can be changed or modified. Some of these cells contain valid default values that can be left unchanged.
In the event that it's required to unprotect the sheets in the workbook, use the password aruba to unlock the sheets.
- Examples of cells you should not change:
- Examples of cells you can change:
Updated about 1 month ago