Automating With Ansible and VMware vRealize Automation
Ansible is an automation platform designed to allow IT administrators to have the ability to quickly deploy configuration management changes or install applications on machines. Ansible uses a YAML-based playbook to provide the changes for just about any network device or app configuration you can think of. Some samples available on github.com include F5, Cisco ACI and Cisco Meraki for networking as well as deploying web services, LAMP and Oracle on virtual machines.
Ansible Tower is Red Hat's retail product that provides centralized management of playbook templates, repositories and more. Using Tower with Red Hat's Ansible Engine introduces a web-based user interface that provides real-time status updates to jobs and adds role-based administration. Tower is a great product, especially for an Ansible newbie such as myself, but it or the open source Ansible is still not a complete Cloud Management Platform (CMP). That's where the VMware vRealize Suite with vRealize Automation (vRA) comes in.
In Gartner terminology, CMPs are integrated products designed to provide complete management of private, public and hybrid clouds. To be considered a CMP, the product must contain a self-service catalog, provision system images, deliver ITSM integration, contain metering metrics, provide billing, and include workload optimizations such as Day 2 operations. Here's a graphical image of VMware's CMP, along with its attachment to infrastructure, DevOps and 3rd party extensibility.
So, if you have Ansible and VMware vRA, there are several ways to integrate the two solutions to provide means for provisioning new applications in a multi-tenant, multicloud environment utilizing vRA's governance, security policies and third party extensibility. Ryan Kelly at VMtoCloud has already written up a great article for utilizing the software components and guest agents of vRA to deliver an Ansible Playbook. However, SovLabs has created an easier method that will utilize Ansible Tower. Let's take a look at how Tower gets folded into vRA with SovLabs.
Prerequisites
- Ansible Tower 3.x and vRA 7.3
- Ansible Organization and Inventory Script configured using SovLabs' vra.py
- Configure Inventory on Tower using the generate_ansInv.sh script
- Setup projects and job templates on Tower
vRA procedure
Install and license the module, then three Tower catalog items will appear. The first item we need to run is the Add Ansible Tower Endpoint.
Fill in the host details and credentials as shown in the image below, then click Submit.
Once completed, the tower endpoint will appear in the Items tab for Day 2 actions.
From the Catalog tab, click the Add Ansible Tower Inventory ProfileSelect the Endpoint and add the hostname for the vRA IaaS service before hitting submit. The defaults can be retained here, or you can apply filters and dynamic groups.
The last step is creating a profile that connects the job templates to vRA. You can select one or more jobs in a single profile as shown below.
Once the profile is created, the blueprint can now be setup. Attaching an Ansible Tower job template to a blueprint is as simple as assigning a property group. Here's a sample blueprint for Tomcat that includes NSX, Infoblox IPAM, custom hostnaming, custom notifications, ServiceNow CMDB and Ansible Playbook.
Last steps are to publish and entitle it for users. That's it!
Want to learn more, or see a live demo of these capabilities from the Advanced Technology Center (ATC)? Contact your account manager or explore it on your own with our ATC Connect app. We have more than 50 active demonstrations and proof of concepts on cloud automation to offer.
Check out some of our other Ansible articles here: