Ansible is a popular open-source automation tool, or platform, used for IT tasks such as configuration management, application deployment, intraservice orchestration and provisioning.
The Ansible 2.5 open source project release added support for the Infoblox Network Identity Operating System (NIOS) enablement. For network professionals, this means that existing networking Ansible Playbooks can utilize existing Infoblox infrastructure for IP Address Management (IPAM), using Infoblox for tracking inventory and more.
With Ansible 2.8, support for managing Infoblox Grid members has been introduced.
Watch this video to get a quick overview of the Infoblox DDI integration with Ansible.
Ansible Infoblox Modules
There are a total of 16 modules included with Ansible 2.8. They can be currently found in the development branch of the documentation:
- nios_a_record – Configure Infoblox NIOS A records
- nios_aaaa_record – Configure Infoblox NIOS AAAA records
- nios_cname_record – Configure Infoblox NIOS CNAME records
- nios_dns_view – Configure Infoblox NIOS DNS views
- nios_fixed_address – Configure Infoblox NIOS DHCP Fixed Address
- nios_host_record – Configure Infoblox NIOS host records
- nios_member – Configure Infoblox NIOS members
- nios_mx_record – Configure Infoblox NIOS MX records
- nios_naptr_record – Configure Infoblox NIOS NAPTR records
- nios_network – Configure Infoblox NIOS network object
- nios_network_view – Configure Infoblox NIOS network views
- nios_nsgroup – Configure Infoblox DNS Nameserver Groups
- nios_ptr_record – Configure Infoblox NIOS PTR records
- nios_srv_record – Configure Infoblox NIOS SRV records
- nios_txt_record – Configure Infoblox NIOS txt records
- nios_zone – Configure Infoblox NIOS DNS zones
- lookup – Fetch Infoblox NIOS specified objects. The documentation for this can be found here.
NIOS Member module
This module manages NIOS member objects using the Infoblox WAPI interface over REST. In addition to adding, modifying and/or removing Infoblox NIOS servers, you can also use it to create a token that can be used to join the Infoblox grid.
This module supports both standalone and HA members. Refer this document for a detailed list of all the properties available with the module.
Here is an example playbook on adding a member:
To run the playbook use the ansible-playbook command:
We can login to the Infoblox UI and look under Grid > Grid Manager, where we will see the new member listed:
Here is an example playbook on creating a token:
To run the playbook use the ansible-playbook command:
You can then use this token to initiate a member join. Note that this function is only available for pre-provisioned members.
Here is a snippet focused on grabbing information about a members using the lookup plugin:
To run the playbook use the ansible-playbook command:
Sample Use Case
This blog talks about how you can leverage this module for autoscaling grid members based on DNS traffic.
Summary
The Ansible modules allow you to configure Infoblox, the lookup plugin allows you to grab information from Infoblox to use in subsequent tasks. With Ansible 2.8, you can now use the NIOS member module to automate grid members.