Author: Mrigank Gupta
Introduction
In the realm of network automation and infrastructure management, Infoblox stands as a pioneer, consistently delivering cutting-edge solutions to simplify and streamline complex network assignments. The latest update, version v2.7 of the Infoblox IPAM Driver for Terraform, promises enhanced efficiency, flexibility, and control over network resources. This update introduces exciting new features and improvements that cater to the evolving needs of network administrators and infrastructure managers.
Terraform is a widely used popular infrastructure-as-code software tool created by HashiCorp. Users define and provide data center infrastructure using a declarative configuration language known as HashiCorp Configuration Language, or optionally JSON. which lets you build, change, and version cloud and on-premise resources safely and efficiently. We always fix bugs with our latest updates and try to make the user experience more enhanced, but this time there are some additions to it as well.
Terraform-Infoblox Integration
A provider plugin for Terraform, that makes it possible to manage Infoblox NIOS (Network Identity Operating System) resources using Terraform infrastructure-as-code solutions, is now available. The plugin enables lifecycle management of Infoblox NIOS DDI resources. The Infoblox IPAM Plug-In for Terraform interfaces with Infoblox vNIOS through REST API to provide IP address management and DNS services. Instead of manually provisioning IP addresses and DNS records for network devices and interfaces in your infrastructure, the Infoblox IPAM Plug-In for Terraform automates IPAM processes. The latest version of the Infoblox provider is v2.7.
Available Resources
Currently, Terraform resources can be broadly divided into two categories: Terraform Resources and Data Sources. A Terraform Resource constitutes a resource block that describes one or more NIOS Grid objects, such as a network container. A Terraform Data Source allows data to be fetched or computed for use elsewhere in the Terraform configuration. With Data Sources, Terraform configuration is built on information defined outside of Terraform or defined by a separate Terraform configuration.
To perform a fetch, create, read, update, or delete operation on a NIOS object, you must define the appropriate resource block in the Terraform configuration (.tf) file. The following topics detail the resources and data sources supported by Infoblox IPAM Plug-In version v2.7 for Terraform and include appropriate examples of blocks that must be defined in the configuration file. For more details on Terraform’s available resources and Data Sources, visit Infoblox Plug-In for Terraform. Read more on Terraform’s official registry for Infoblox.
Recent Developments, Additions and Updates
Upgrade Terraform version from 0.14 to 1.8.1
To use the new features and functionality from version 2.7, you will need to upgrade your Terraform version.
- Performance Improvements: Updates will optimize code and introduce more efficient algorithms, leading to better performance of the integrated systems.
- Compatibility: Newer versions will ensure compatibility with new/latest features that we have added to the plugin.
Update Go-Lang from 1.17 to 1.21 or later & Go-client version to v2.7.0
We still maintain our stance similar to earlier releases and are very clear that only if you plan to develop a plugin that includes features that are not in the published version, then only do you need to install the Infoblox-Go-Client and Go programming language.
- Performance Improvements: Updates will optimize code and introduce more efficient algorithms, leading to better performance of the integrated systems.
- Compatibility: Newer versions will ensure compatibility with new/latest features that we have added to the plugin.
Support for Import Block Functionality
Up until now, with this plugin, we were able to import resources since v2.2.0. Now, we have enhanced the plugin to import multiple resources with a single command and call it an import block. Read more for importing a single resource.
use this new development that is importing multiple resources at once referred to as import block? You can import all the records, for example, A, AAAA, MX, PTR records present in a single zone, or all the networks present in a single network container, etc., via a single Terraform configuration file referred to as a .tf file. When using the Terraform import block to import a resource into Terraform, the Terraform internal ID that is assigned to the resource when the Terraform plan command is run for the first time, is retained even if a subsequent Terraform apply is aborted though the resource is not managed by Terraform.
Import by Using the Import Block
Define the import block in the Terraform configuration (.tf) file of a resource that must be imported. In the .tf file of the resource to import, include the following block:
|
The parameters you can define in the import block are:
Parameter | Required/Optional | Description |
---|---|---|
to | Required | Specifies the instance address of this resource in the Terraform state file. |
id | Required | Specifies the Terraform Internal ID assigned to the resource by NIOS. It is referred to as the reference ID in the import block and as Terraform Internal ID for host records. |
Example:
|
Resource and Data Source for DNS Conditional Forwarder Zones
This is an addition of a new resource to our present plugin. A forwarder is a name server to which all other name servers first send queries that they cannot resolve locally. The forwarder then sends these queries to DNS servers that are external to the network, avoiding the need for the other name servers in your network to send queries off-site. A forwarder eventually builds up a cache of information, which it uses to resolve queries. This reduces Internet traffic over the network and decreases the response time to DNS clients. This is useful in organizations that need to minimize off-site traffic, such as a remote office with a slow connection to a company’s network. You can select any Grid member to function as a forwarder. You must configure your firewall to allow that Grid member to communicate with external DNS servers. You can also configure NIOS to send queries to one or more forwarders. In addition, you can define a list of forwarders for the entire Grid, for each Grid member, or for each DNS view.
If your network configuration includes Infoblox BloxOne Threat Defense, you can configure NIOS Grid members (physical or virtual appliance) to forward recursive queries to BloxOne Threat Defense.
When there is more than one forwarder in the Grid, the NIOS resolver uses a smoothed metric derived from RTT (Round Trip Time) to select the name server to send queries to. RTT is the length of time between when a query was sent and when its response was received.
Example Scripts for Forward Zone Resources
|
|
|
Data Sources for Host Record, IPv6 Network Container, and IPv6 Network
This feature is an addition of data sources to already present resources in our repository. These four new data sources have been introduced with this release and is an extension of our earlier effort of bringing more resources into the umbrella of multi-value extensible attributes search for data sources for easy and efficient searching of objects/resources to increase its manageability. To see the proper structure to fetch data sources you can refer to Ability to search through Extensible Attributes in data sources.
Conclusion
The latest update to the Infoblox IPAM Driver for Terraform represents a significant milestone in network automation and infrastructure management. With new features, such as DHCP support, enhanced resource management, and seamless integration with the Infoblox Cloud Platform, users can unlock new levels of efficiency, flexibility, and control over their network environments.
As organizations continue to embrace digital transformation and the adoption of cloud-native technologies, the Infoblox IPAM Driver for Terraform stands ready to meet the evolving needs of modern IT infrastructure. Whether you are managing a small-scale network or a large enterprise deployment, Infoblox remains committed to empowering users with innovative solutions that simplify complexity and drive business success.
Stay tuned for future updates and enhancements as we continue to innovate and deliver value to our customers. Stay tuned for future updates and enhancements as we continue to innovate and deliver value to our customers.