FlashStack Virtual Server Infrastructure for End-to-End 100 Gigabit with Cisco UCS X-Series and Cisco UCS 5th Generation Fabric Technology

This repository contains Ansible playbooks to configure all the components of FlashStack including:

   • Cisco UCS in Intersight Managed Mode (IMM)

   • Cisco Nexus and MDS Switches

   • Pure FlashArray

   • VMware ESXi and VMware vCenter.

This repository can be used to automate the Virtual Server Infrastrcutre Deployment incorporating the Cisco Unified Computing System™ (Cisco UCS®) X-Series modular platform, Cisco Unified Computing System™ 5th Generation Fabric Technology (5th Generation Fabric Interconnects 6536, 5th Generation Cisco UCS Virtual Interface Card and X9108-IFM-100G IFM) into the FlashStack Virtual Server Infrastructure (VSI) to enable end-to-end 100G Ethernet and 32G Fibre Channel.

Details will be covered in the upcoming Cisco Validated Design document.

The CVD lays out the complete process for configuring the FlashStack using Ansible. Since these playbooks are intended to save time in setting up a working FlashStack, a complete FlashStack as shown below is needed to execute the playbooks.

FlashStack - Physical Topologies

IP connectivity FC connectivity

How to execute these playbooks?

High-Level FlashStack Automation

Screen Shot 2022-09-15 at 5 03 58 PM



FlashStack Automated Deployment Workflow



Set up the execution environment

To execute various ansible playbooks, a Linux based system will need to be setup as described in the CVD with the packages listed at the following pages:

• Cisco Intersight: https://galaxy.ansible.com/cisco/intersight

• Cisco NxOS: https://galaxy.ansible.com/cisco/nxos

• Pure FlashArray: https://galaxy.ansible.com/purestorage/flasharray

• VMware: https://galaxy.ansible.com/community/vmware

You might already have this collection installed.

  • To check whether it is installed, run: ansible-galaxy collection list
  • To install it, use:
  • ansible-galaxy collection install cisco.intersight (For Intersight Collection)

    ansible-galaxy collection install cisco.nxos (For Cisco NX-OS collection)

    ansible-galaxy collection install purestorage.flasharray (Pure Storage FlashArray Collection)

    ansible-galaxy collection install community.vmware (For VMWare Ansible Collection)

Intersight Configuration and Access Requirement

The Intersight playbooks in this repository perform following functions:

  1. Create various pools required to setup a Server Profile Template
  2. Create various policies required to setup a Server Profile Template
  3. Create iSCSI and/or FC Server Profile Templates

After successfully executing the playbooks, one or many server profiles can easily derived and attached to the compute node from Intersight dashboard.

NOTE: The addition of UCS to Intersight Account or configuration of Domain Profile to setup UCS is not part of this repository and will have to be performed manually before executing the playbooks.

NOTE: The playbooks do not create an organization and assume an organization (default or otherwise) has already been setup under Intersight account. The organization name must be updated in group_vars/all.yml(org_name) for successful execuation of the playbooks.


To execute the playbooks against your Intersight account, you need to complete following additional steps of creating an API key and saving the Secrets_File:

https://community.cisco.com/t5/data-center-and-cloud-documents/intersight-api-overview/ta-p/3651994

The API key and Secrets_Filename information is added to the group_vars/all.yml. The default Secrets_File value in all.yml assumes Secrets_File was copied to the same folder/directory where Ansible Playbooks were cloned (alongside inventory file).


Setting up Variables

All the variables used in this framework are defined in the following locations:

  1. Variable that require customer inputs are part of group_vars/
  2. Variable that do not typically require customer input (e.g. descriptions etc.) are present under role_name/defauls/main.yml.
    Setup all the variables before executing the playbooks as detailed in the CVD. Intersight's pools and policies created using these playbooks are tagged with user_defined_prefix and "ansible" to easily filter the configuration.

Playbook Execution Commands

  1. Setup Pools in Intersight: ansible-playbook ./create_pools.yml -i inventory
  2. Setup Policies in Intersight: ansible-playbook ./create_server_policies.yml -i inventory
  3. Setup Server Profile Template(s) in Intersight: ansible-playbook ./create_server_profile_template.yml -i inventory
  4. Setup LAN on Nexus: ansible-playbook ./Setup_Nexus.yml -i inventory
  5. Setup MDS: ansible-playbook ./Setup_MDS.yml -i inventory
  6. Setup Pure FlashArray: ansible-playbook ./Setup_Pure.yml -i inventory
  7. Setup VMWare ESXi servers: ansible-playbook ./Setup_ESXi.yml -i inventory
  8. Setup VMWare Cluster and vCenter Setup: ansible-playbook ./Setup_vCenter.yml -i inventory

Post Configuration Tasks

Execution of first three playbooks in these repositories set up Server Profile Template in Intersight. After successfully executing the playbooks, one or more server profiles can easily derived and attached to the compute node from Intersight dashboard. KVM mounted DVD option is available to install OS to these newly derived servers.


View code on GitHub

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.