diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b4941d3..9b53df7 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,6 +3,42 @@ Infoblox.Nios_Modules Release Notes =================================== .. contents:: Topics + +v1.7.0 +====== + +Release Summary +--------------- +This release brings new modules for managing extensible attribute definition and DNS name server groups. +Additionally, it includes various enhancements, new features, and bug fixes aimed at improving the system's overall functionality and performance. + +Minor Changes +------------- +- Added support for the `use_for_ea_inheritance` parameter in Host Record to inherit extensible attribute from Host address. `#265 `_ +- Added support for the `use_dns_ea_inheritance` parameter in Host Record to inherit extensible attribute from associated zone. `#265 `_ +- Enabled IPv4 support for PXE server configuration in the Host Record module. `#146 `_ +- Introduced `use_logic_filter_rules` & `logic_filter_rules` support for both IPv4 and IPv6 networks and network containers. `#233 `_ +- Added IPv6 network container support for the `nios_next_network` lookup plugin. `#178 `_ +- Added `use_range` parameter to the `nios_next_ip` lookup plug-in to enable it to lookup the next available IP address in a network range. `#200 `_ +- Upgraded the base WAPI version to 2.12.3. `#233 `_ +- Improved handling of DHCP options in DHCP Range, Network, and Network Container modules. + +New Modules +----------- +- infoblox.nios_modules.nios_extensible_attribute - Configure Infoblox NIOS extensible attribute definition +- infoblox.nios_modules.nios_nsgroup_delegation - Configure InfoBlox DNS Delegation Name server Groups +- infoblox.nios_modules.nios_nsgroup_forwardingmember - Configure InfoBlox DNS Forwarding Member Name server Groups +- infoblox.nios_modules.nios_nsgroup_forwardstubserver - Configure InfoBlox DNS Forward/Stub Server Name server Groups +- infoblox.nios_modules.nios_nsgroup_stubmember - Configure InfoBlox DNS Stub Member Name server Groups + +Bugfixes +-------- +- Omits DNS view from filter criteria when renaming a host object and bypasses the DNS. (https://github.com/infobloxopen/infoblox-ansible/issues/230) +- nios_host_record - rename logic included DNS view in filter criteria, even when DNS had been bypassed. +- Fixed the handling of `mac` parameter in the `nios_host_record` module. +- Fixed the update operation in the `nios_network` module where the `network` parameter was not handled correctly. +- Adjusted unit test assertions for Mock.called_once_with. `#254 `_ + v1.6.1 ====== @@ -124,7 +160,7 @@ Bugfixes --------- - Fix to create TXT record with equals sign `#128 `_ - + v1.2.2 ====== @@ -167,7 +203,7 @@ Minor Changes - Updated 'required' field in modules `#99 `_ - Following options are made required in the modules -.. list-table:: +.. list-table:: :widths: 25 25 :header-rows: 1 @@ -178,12 +214,12 @@ Minor Changes * - AAAA - ipv6addr * - CNAME - - canonical + - canonical * - MX - - mail_exchanger, preference + - mail_exchanger, preference * - PTR - ptrdname - + Bugfixes ------------- - nios_a_record module - KeyError: 'old_ipv4addr' `#79 `_ @@ -225,8 +261,8 @@ Bugfixes ------------- - Implemented the bugfixes provided by Ansible `community.general` - Update the name of existing A and AAAA records `#70 `_ -- Update of comment field of SRV, PTR and NAPTR records failing with the following error: - ```[Err: fatal: [localhost]: FAILED! => {"changed": false, "code": "Client.Ibap.Proto", "msg": "Field is not allowed for update: view", "operation": "update_object", "type": "AdmConProtoError"}]``` +- Update of comment field of SRV, PTR and NAPTR records failing with the following error: + ```[Err: fatal: [localhost]: FAILED! => {"changed": false, "code": "Client.Ibap.Proto", "msg": "Field is not allowed for update: view", "operation": "update_object", "type": "AdmConProtoError"}]``` `#70 `_ - PTR Record failed to update and raises KeyError for view field `#70 `_ - Update comment field and delete an existing Fixed Address `#73 `_ @@ -287,7 +323,7 @@ v1.0.0 Release Summary --------------- -First release of the `nios_modules` collection! This release includes multiple plugins:- an `api` plugin, a `network` plugin, a `nios` plugin, a `nios_inventory` plugin, a `lookup plugin`, a `nios_next_ip` plugin, a `nios_next_network` plugin +First release of the `nios_modules` collection! This release includes multiple plugins:- an `api` plugin, a `network` plugin, a `nios` plugin, a `nios_inventory` plugin, a `lookup plugin`, a `nios_next_ip` plugin, a `nios_next_network` plugin New Plugins ----------- @@ -313,7 +349,7 @@ New Modules - infoblox.nios_modules.nios_naptr_record - Configure Infoblox NIOS NAPTR records - infoblox.nios_modules.nios_network - Configure Infoblox NIOS network object - infoblox.nios_modules.nios_network_view - Configure Infoblox NIOS network views -- infoblox.nios_modules.nios_nsgroup - Configure Infoblox NIOS Nameserver Groups +- infoblox.nios_modules.nios_nsgroup - Configure Infoblox NIOS Name server Groups - infoblox.nios_modules.nios_ptr_record - Configure Infoblox NIOS PTR records - infoblox.nios_modules.nios_srv_record - Configure Infoblox NIOS SRV records - infoblox.nios_modules.nios_txt_record - Configure Infoblox NIOS txt records diff --git a/README.md b/README.md index 17bd1c5..45f381b 100644 --- a/README.md +++ b/README.md @@ -1,237 +1,289 @@ # Infoblox NIOS Modules for Ansible Collections -About -====== +Infoblox NIOS Modules for Ansible Collections enable the management of your NIOS objects through APIs. -Infoblox NIOS Modules for Ansible Collections allows managing your NIOS objects -through APIs. -It, thus, enables the DNS and IPAM automation of VM workloads that are -deployed across multiple platforms. The `nios_modules` collection -provides modules and plugins for managing the networks, IP addresses, -and DNS records in NIOS. This collection is hosted on Ansible Galaxy -under `infoblox.nios_modules`. +## Description +Infoblox NIOS Modules for Ansible Collections facilitate the DNS and IPAM automation of +VM workloads that are deployed across multiple platforms. The `nios_modules` collection consists of modules and plug-ins required to manage the networks, +IP addresses, and DNS records in NIOS. The collection is hosted on Ansible Galaxy under `infoblox.nios_modules`. -Modules Overview -================= +### Modules Overview The `infoblox.nios_modules` collection has the following content: -Modules --------- - -- `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_dtc_lbdn` – Configure Infoblox NIOS DTC LBDN records - -- `nios_dtc_monitor_http` – Configure Infoblox NIOS DTC HTTP monitors - -- `nios_dtc_monitor_icmp` – Configure Infoblox NIOS DTC ICMP monitors +##### Modules + +- `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_dtc_lbdn` – Configure Infoblox NIOS DTC LBDN records +- `nios_dtc_monitor_http` – Configure Infoblox NIOS DTC HTTP monitors +- `nios_dtc_monitor_icmp` – Configure Infoblox NIOS DTC ICMP monitors +- `nios_dtc_monitor_pdp` – Configure Infoblox NIOS DTC PDP monitors +- `nios_dtc_monitor_sip` – Configure Infoblox NIOS DTC SIP monitors +- `nios_dtc_monitor_snmp` – Configure Infoblox NIOS DTC SNMP monitors +- `nios_dtc_monitor_tcp` – Configure Infoblox NIOS DTC TCP monitors +- `nios_dtc_pool` – Configure Infoblox NIOS DTC pools +- `nios_dtc_server` – Configure Infoblox NIOS DTC server records +- `nios_dtc_topology` – Configure Infoblox NIOS DTC topologies +- `nios_extensible_attribute` - Configure Infoblox NIOS extensible attributes +- `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 Authoritative Name server Groups +- `nios_nsgroup_delegation` – Configure Infoblox DNS Delegation Name server Groups +- `nios_nsgroup_forwardingmember` – Configure Infoblox DNS Forwarding Member Name server Groups +- `nios_nsgroup_forwardstubserver` – Configure Infoblox DNS Forward/Stub Server Name server Groups +- `nios_nsgroup_stubmember` – Configure Infoblox DNS Stub Member Name server Groups +- `nios_ptr_record` – Configure Infoblox NIOS PTR records +- `nios_range` - Configure Infoblox NIOS Network Range object +- `nios_restartservices` - Controlled restart of Infoblox NIOS services +- `nios_srv_record` – Configure Infoblox NIOS SRV records +- `nios_txt_record` – Configure Infoblox NIOS txt records +- `nios_zone` – Configure Infoblox NIOS DNS zones + +#### Plugins + +- `nios_inventory`: List all the hosts with records created in NIOS +- `nios_lookup`: Look up queries for NIOS database objects +- `nios_next_ip`: Return the next available IP address for a network +- `nios_next_network`: Return the next available network addresses + for a given network CIDR -- `nios_dtc_monitor_pdp` – Configure Infoblox NIOS DTC PDP monitors +## Requirements -- `nios_dtc_monitor_sip` – Configure Infoblox NIOS DTC SIP monitors +- Python version 3.10 or later +- Ansible Core version 2.15 or later +- NIOS 8.6.x and 9.0.x +- Infoblox WAPI version 2.12.3 or later +- Python module infoblox-client version 0.6.0 + + Install the infoblox-client WAPI package. To install, run the following command: +```shell +pip install infoblox-client==0.6.0 +``` -- `nios_dtc_monitor_snmp` – Configure Infoblox NIOS DTC SNMP monitors +## Installation -- `nios_dtc_monitor_tcp` – Configure Infoblox NIOS DTC TCP monitors +To install nios module with the Ansible Galaxy command-line tool: -- `nios_dtc_pool` – Configure Infoblox NIOS DTC pools +``` +ansible-galaxy collection install infoblox.nios_modules +``` -- `nios_dtc_server` – Configure Infoblox NIOS DTC server records +You can also include it in a requirements.yml file and install it with `ansible-galaxy collection install -r requirements.yml`, using the format: -- `nios_dtc_topology` – Configure Infoblox NIOS DTC topologies +```yaml +collections: + - name: infoblox.nios_modules +``` -- `nios_fixed_address` – Configure Infoblox NIOS DHCP Fixed Address +Note that if you install any collection from Ansible Galaxy, they will not be upgraded automatically when you upgrade the Ansible package. +To upgrade the collection to the latest available version, run the following command: -- `nios_host_record` – Configure Infoblox NIOS host records +``` +ansible-galaxy collection install infoblox.nios_modules --upgrade +``` -- `nios_member` – Configure Infoblox NIOS members +You can also install a specific version of the collection. For example, due to an issue of the latest version, +if you need to downgrade the collection to a prior version, use the following command to install the specific version: -- `nios_mx_record` – Configure Infoblox NIOS MX records +``` +ansible-galaxy collection install infoblox.nios_modules:== +``` -- `nios_naptr_record` – Configure Infoblox NIOS NAPTR records +See [using Ansible collections](https://docs.ansible.com/ansible/devel/user_guide/collections_using.html) for more details. -- `nios_network` – Configure Infoblox NIOS network object +### Installation from GitHub -- `nios_network_view` – Configure Infoblox NIOS network views +- Install the collection directly from the [GitHub](https://github.com/infobloxopen/infoblox-ansible) repository using the latest commit on the master branch: +```shell +$ ansible-galaxy collection install git+https://github.com/infobloxopen/infoblox-ansible.git,master +``` -- `nios_nsgroup` – Configure Infoblox DNS Nameserver Authoritative Groups +- For offline installation on the Ansible control machine, follow the below steps to clone the git repository and install from the repository: -- `nios_nsgroup_delegation` – Configure Infoblox DNS Nameserver Delegation Groups + 1. **Clone the repo:** + ``` + $ git clone https://github.com/infobloxopen/infoblox-ansible.git + ``` -- `nios_nsgroup_forwardingmember` – Configure Infoblox DNS Nameserver Forwarding Member Groups + 2. **Build the collection:** + To build a collection, run the following command from inside the root directory of the collection: + ``` + $ ansible-galaxy collection build + ``` + This creates a tarball of the built collection in the current directory. -- `nios_nsgroup_forwardstubserver` – Configure Infoblox DNS Nameserver Forward/Stub Server Groups + 3. **Install the collection:** + ``` + $ ansible-galaxy collection install infoblox-nios_modules-.tar.gz -p ./collections + ``` -- `nios_nsgroup_stubmember` – Configure Infoblox DNS Nameserver Stub Member Groups +Please refer to our Ansible [deployment guide](https://docs.infoblox.com/space/niosmodulesansible) for more details. -- `nios_ptr_record` – Configure Infoblox NIOS PTR records +## Use Cases -- `nios_range` - Configure Infoblox NIOS Network Range object -- `nios_restartservices` - Controlled restart of Infoblox NIOS services +### 1. Automated DNS Record Management -- `nios_srv_record` – Configure Infoblox NIOS SRV records +**Description:** Automatically create, update, and delete DNS records in Infoblox NIOS based on changes in your infrastructure. -- `nios_txt_record` – Configure Infoblox NIOS txt records +**Example:** +```yaml +- name: Create a DNS A record + infoblox.nios_modules.nios_a_record: + name: "host.example.com" + ipv4addr: "192.168.1.10" + state: "present" +``` -- `nios_zone` – Configure Infoblox NIOS DNS zones +### 2. IP Address Allocation -Plugins --------- +**Description:** Dynamically allocate and manage IP addresses for virtual machines and other devices in your network. -- `nios_inventory`: List all the hosts with records created in NIOS +**Example:** +```yaml +- name: Allocate an IP address + infoblox.nios_modules.nios_fixed_address: + ipv4addr: "192.168.1.20" + mac: "00:50:56:00:00:01" + state: "present" +``` -- `nios_lookup`: Look up queries for NIOS database objects +### 3. Network Management -- `nios_next_ip`: Returns the next available IP address for a network +**Description:** Create and manage network segments and subnets within Infoblox NIOS. -- `nios_next_network`: Returns the next available network addresses - for a given network CIDR +**Example:** +```yaml +- name: Create a network + infoblox.nios_modules.nios_network: + network: "192.168.2.0/24" + comment: "Development network" + state: "present" +``` -Installation -============= +### 4. DHCP Scope Management -Dependencies ------------- +**Description:** Manage DHCP scopes to ensure efficient IP address distribution and avoid conflicts. -- Python version 3.10 or later +**Example:** +```yaml +- name: Create a DHCP range + infoblox.nios_modules.nios_range: + network: "192.168.3.0/24" + start_addr: "192.168.3.10" + end_addr: "192.168.3.100" + state: "present" +``` -- Ansible Core version 2.14 or later +### 5. DTC Object Management -- NIOS 8.6.x and 9.0.x +**Description:** Manage DNS Traffic Control (DTC) objects to optimize traffic distribution and ensure high availability. -- Infoblox WAPI version 2.9 or later - -Note: For modules of DTC objects to function properly, Infoblox recommends WAPI version 2.12 or later. +**Example:** +```yaml +- name: Create a DTC Pool + infoblox.nios_modules.nios_dtc_pool: + name: "example_pool" + lb_method: "round_robin" + state: "present" +``` -Prerequisites -------------- +### 6. Lookups -Install the infoblox-client WAPI package. To install, run the following command: +**Description:** Perform lookups to retrieve information about existing NIOS objects. -```shell -$ pip install infoblox-client +**Example:** +```yaml +- name: fetch the default dns view + ansible.builtin.set_fact: + dns_views: "{{ lookup('infoblox.nios_modules.nios_lookup', 'view', filter={'name': 'default'}, + provider={'host': 'nios01', 'username': 'admin', 'password': 'password'}) }}" ``` -Installation of nios_modules Collection ----------------------------------------- +### 7. Next Available Functionality -The `nios_modules` collection can be installed either from Ansible Galaxy -or directly from git. It is recommended to install collections from -Ansible Galaxy as those are more stable than the ones in the git -branch. +**Description:** Retrieve the next available IP address or network in a specified range or network. -### Installation from Ansible Galaxy -- To directly install the `nios_modules` collection from [Ansible Galaxy](https://galaxy.ansible.com/infoblox/nios_modules), run the following command: - - ``` - $ ansible-galaxy collection install infoblox.nios_modules - ``` - - The collection folder would be installed at - ``` - ~/.ansible/collections/ansible_collections/infoblox/nios_modules - ``` - -- For offline installation on the Ansible control machine, download the required tar archive version of the collection from [Infoblox Nios Modules collections](https://galaxy.ansible.com/infoblox/nios_modules) and run the command given below in `~/.ansible` directory: - - ``` - $ ansible-galaxy collection install infoblox-nios_modules-.tar.gz -p ./collections - ``` - -### Installation from GitHub -- Install the collection directly from the [GitHub](https://github.com/infobloxopen/infoblox-ansible) repository using the latest commit on the master branch: - - ``` - $ ansible-galaxy collection install git+https://github.com/infobloxopen/infoblox-ansible.git,master - ``` +**Example:** +```yaml +- name: return next available IP address for network 192.168.10.0/24 + ansible.builtin.set_fact: + ipaddr: "{{ lookup('infoblox.nios_modules.nios_next_ip', '192.168.10.0/24', provider={'host': 'nios01', 'username': 'admin', 'password': 'password'}) }}" +``` -- For offline installation on the Ansible control machine, to git clone and install from this repo, follow these steps: +For more detailed examples and playbooks, refer to the `playbooks` directory in the `infoblox-ansible` repository. - - **Clone the repo:** - ``` - $ git clone https://github.com/infobloxopen/infoblox-ansible.git - ``` +## Testing - - **Build the collection:** +The collection has been tested in the following environments: - To build a collection, run the following command from inside the - root directory of the collection: - ``` - $ ansible-galaxy collection build - ``` - This creates a tarball of the built collection in the current directory. +- **Operating Systems:** + - Ubuntu 20.04 LTS + - Mac - - **Install the collection:** +- **Ansible Versions:** + - Ansible Core 2.15 + - Ansible Core 2.16 + - Ansible Core 2.17 - ``` - $ ansible-galaxy collection install infoblox-nios_modules-.tar.gz -p ./collections - ``` +- **NIOS Versions:** + - NIOS 8.6.x + - NIOS 9.0.x -Please refer to our Ansible [deployment -guide](https://www.infoblox.com/wp-content/uploads/infoblox-deployment-guide-automate-infoblox-infrastructure-using-ansible.pdf) -for more details. +### Known Exceptions and Workarounds -Playbooks -========= -Latest sample playbooks and examples are available at [playbooks](https://github.com/infobloxopen/infoblox-ansible/tree/master/playbooks). +For detailed information on testing and performance, refer to the `tests` directory in the `infoblox-ansible` repository. +## Contributing -Releasing -========= +We welcome your contributions to Infoblox Nios Modules. See [CONTRIBUTING.md](https://github.com/infobloxopen/infoblox-ansible/blob/master/CONTRIBUTING.md) for more details. -Next release ---------------- +## Support -Dates TBD +### Supported Versions -Current release ---------------- +Infoblox NIOS Modules for Ansible Collections supports the following versions: +- **NIOS Versions:** 8.6.x and 9.0.x +- **Ansible Core Versions:** 2.15 and later +- **Python Versions:** 3.10 and later -1.6.1 on 19 Dec 2023 +### How to Get Support -Versioning -========= +If you need assistance with the Infoblox NIOS Modules, you can get support through the following channels: -- galaxy.yml in the master branch will always contain the version of the current major or minor release. It will be updated right after a release. -- version_added needs to be used for every new feature and module/plugin, and needs to coincide with the next minor/major release version. (This will eventually be enforced by CI.) +- **GitHub Issues:** + - Submit your issues or requests for enhancements on the [GitHub Issues](https://github.com/infobloxopen/infoblox-ansible/issues) page. -Deprecation -=========== -- Deprecations are done by version number (not by date). -- New deprecations can be added during every minor release, under the condition that they do not break backward compatibility. +- **Infoblox Support:** + - For enterprise support, contact Infoblox Support through the [Infoblox Support Portal](https://support.infoblox.com). -Contributing -============ -We welcome your contributions to Infoblox Nios Modules. See -[CONTRIBUTING.md](https://github.com/infobloxopen/infoblox-ansible/blob/master/CONTRIBUTING.md) for -more details. +For any other inquiries, please refer to the [Infoblox Contact Page](https://www.infoblox.com/company/contact-us/). -Resources -========= +## Release Notes and Roadmap -- Infoblox [NIOS - modules](https://docs.ansible.com/ansible/latest/scenario_guides/guide_infoblox.html) - on Ansible documentation +For detailed information about the latest updates, new features, bug fixes, and improvements, please visit our [Changelog](https://github.com/infobloxopen/infoblox-ansible/blob/master/CHANGELOG.rst). -- Infoblox [workspace](https://galaxy.ansible.com/infoblox) in Ansible - Galaxy +## Related Information -- Infoblox Ansible [deployment - guide](https://www.infoblox.com/wp-content/uploads/infoblox-deployment-guide-automate-infoblox-infrastructure-using-ansible.pdf) +For more detailed documentation and examples, refer to the following resources: +- Infoblox [NIOS modules](https://docs.ansible.com/ansible/latest/collections/infoblox/nios_modules/index.html) on Ansible documentation +- Infoblox [workspace](https://galaxy.ansible.com/ui/repo/published/infoblox/nios_modules) in Ansible Galaxy +- Infoblox Ansible [deployment guide](https://docs.infoblox.com/space/niosmodulesansible) +- [CONTRIBUTING.md](https://github.com/infobloxopen/infoblox-ansible/blob/master/CONTRIBUTING.md) for contribution guidelines -License -======= +## License Information -This code is published under `GPL v3.0` +This code is published under `GPL v3.0` [COPYING](https://github.com/infobloxopen/infoblox-ansible/blob/master/COPYING) -[COPYING](https://github.com/infobloxopen/infoblox-ansible/blob/master/COPYING) +## Issues or RFEs -Issues or RFEs -=============== -You can open an issue or request for enhancement -[here](https://github.com/infobloxopen/infoblox-ansible/issues) +You can open an issue or request for enhancement [here](https://github.com/infobloxopen/infoblox-ansible/issues) diff --git a/changelogs/.plugin-cache.yaml b/changelogs/.plugin-cache.yaml index 8ffcc43..c13fa0b 100644 --- a/changelogs/.plugin-cache.yaml +++ b/changelogs/.plugin-cache.yaml @@ -95,6 +95,11 @@ plugins: name: nios_dtc_topology namespace: "" version_added: 1.6.0 + nios_extensible_attribute: + description: Configure Infoblox NIOS extensible attribute definition + name: nios_extensible_attribute + namespace: "" + version_added: 1.7.0 nios_fixed_address: description: Configure Infoblox NIOS DHCP Fixed Address name: nios_fixed_address @@ -131,15 +136,40 @@ plugins: namespace: "" version_added: 1.0.0 nios_nsgroup: - description: Configure InfoBlox DNS Nameserver Groups + description: Configure Infoblox DNS Nameserver Authoritative Groups name: nios_nsgroup namespace: "" version_added: 1.0.0 + nios_nsgroup_delegation: + description: Configure Infoblox DNS Nameserver Delegation Groups + name: nios_nsgroup_delegation + namespace: "" + version_added: 1.7.0 + nios_nsgroup_forwardingmember: + description: Configure Infoblox DNS Nameserver Forwarding Member Groups + name: nios_nsgroup_forwardingmember + namespace: "" + version_added: 1.7.0 + nios_nsgroup_forwardstubserver: + description: Configure Infoblox DNS Nameserver Forward/Stub Server Groups + name: nios_nsgroup_forwardstubserver + namespace: "" + version_added: 1.7.0 + nios_nsgroup_stubmember: + description: Configure Infoblox DNS Nameserver Stub Member Groups + name: nios_nsgroup_stubmember + namespace: "" + version_added: 1.7.0 nios_ptr_record: description: Configure Infoblox NIOS PTR records name: nios_ptr_record namespace: "" version_added: 1.0.0 + nios_range: + description: Configure Infoblox NIOS network range object + name: nios_range + namespace: "" + version_added: 1.5.0 nios_restartservices: description: Restart grid services. name: nios_restartservices @@ -164,4 +194,4 @@ plugins: shell: {} strategy: {} vars: {} -version: 1.6.1 +version: 1.7.0 diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index cf9803f..f70f7dd 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -247,3 +247,43 @@ releases: release_summary: "This release includes the updates of plug-in version 1.6.0 and the following documentation changes: Ansible core version in the dependencies updated to 2.14 or later." release_date: "2023-12-19" + 1.7.0: + changes: + bugfixes: + - Omits DNS view from filter critera when renaming a host object and DNS is + bypassed. (https://github.com/infobloxopen/infoblox-ansible/issues/230) + - nios_host_record - rename logic included DNS view in filter critera, even + when DNS had been bypassed. + - Fixed an issue in the `nios_host_record` module where the `mac` parameter was not handled correctly. + - Fixed the update operation in the `nios_network` module where the `network` parameter was not handled correctly. + - Adjusted unit test assertions for Mock.called_once_with. + minor_changes: + - Added support for the `use_for_ea_inheritance` parameter in Host Record to inherit EA from Host address. + - Added support for the `use_dns_ea_inheritance` parameter in Host Record to inherit EA from associated zone. + - Enabled IPv4 support for PXE server configuration in the Host Record module. + - Introduced `use_logic_filter_rules` & `logic_filter_rules` support for both IPv4 and IPv6 network and network container. + - Added IPv6 network container support for the `nios_next_network` lookup plugin. + - Added `use_range` parameter to the nios_next_ip lookup plugin, enabling lookup for the next available IP from a network range. + - Upgraded the base WAPI version to 2.12.3. + - Improved handling of DHCP options in DHCP Range, Network, and Network Container. + release_summary: "This release brings new modules for extensible attribute definition and managing DNS nameserver groups. + Additionally, it includes various enhancements, new features, and bug fixes aimed at improving the system's overall functionality and performance." + fragments: + - 229-handle-host-rename-without-dns.yml + modules: + - description: Configure Infoblox NIOS extensible attribute definition + name: nios_extensible_attribute + namespace: "" + - description: Configure InfoBlox DNS Nameserver Delegation Groups + name: nios_nsgroup_delegation + namespace: "" + - description: Configure InfoBlox DNS Nameserver Forward/Stub Server Groups + name: nios_nsgroup_forwardingmember + namespace: "" + - description: Configure InfoBlox DNS Nameserver Forwarding Member Groups + name: nios_nsgroup_forwardstubserver + namespace: "" + - description: Configure InfoBlox DNS Nameserver Stub Member Groups + name: nios_nsgroup_stubmember + namespace: "" + release_date: "2024-10-04" diff --git a/changelogs/fragments/229-handle-host-rename-without-dns.yml b/changelogs/fragments/229-handle-host-rename-without-dns.yml deleted file mode 100644 index c0ea611..0000000 --- a/changelogs/fragments/229-handle-host-rename-without-dns.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -bugfixes: - - nios_host_record - rename logic included DNS view in filter critera, even when DNS had been bypassed. - - Omits DNS view from filter critera when renaming a host object and DNS is bypassed. - (https://github.com/infobloxopen/infoblox-ansible/issues/230) diff --git a/galaxy.yml b/galaxy.yml index 6676e2e..602bc1e 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -10,7 +10,7 @@ namespace: infoblox name: nios_modules # The version of the collection. Must be compatible with semantic versioning -version: 1.6.1 +version: 1.7.0 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md diff --git a/plugins/lookup/nios_next_ip.py b/plugins/lookup/nios_next_ip.py index be059db..e60893f 100644 --- a/plugins/lookup/nios_next_ip.py +++ b/plugins/lookup/nios_next_ip.py @@ -26,7 +26,7 @@ use_range: description: Use DHCP range to retrieve the next available IP address(es). Requested number of IP Addresses must be between 1 and 20. required: false - default: no + default: false type: bool num: description: The number of IP address(es) to return. diff --git a/plugins/modules/nios_host_record.py b/plugins/modules/nios_host_record.py index 38185d3..a5ae78c 100644 --- a/plugins/modules/nios_host_record.py +++ b/plugins/modules/nios_host_record.py @@ -275,6 +275,37 @@ password: admin connection: local +- name: Create an ipv4 host record with DNS EA inheritance enabled + infoblox.nios_modules.nios_host_record: + name: host.ansible.com + configure_for_dns: true + use_dns_ea_inheritance: true + ipv4: + - address: 192.168.10.1 + dhcp: true + mac: 00-80-C8-E3-4C-BD + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local + +- name: Create an ipv4 host record with host address EA inheritance enabled + infoblox.nios_modules.nios_host_record: + name: host.ansible.com + configure_for_dns: true + ipv4: + - address: 192.168.10.1 + dhcp: true + mac: 00-80-C8-E3-4C-BD + use_for_ea_inheritance: true + state: present + provider: + host: "{{ inventory_hostname_short }}" + username: admin + password: admin + connection: local - name: Create an ipv4 host record over DHCP with PXE server infoblox.nios_modules.nios_host_record: diff --git a/plugins/modules/nios_nsgroup.py b/plugins/modules/nios_nsgroup.py index eb141a4..dfab3ef 100644 --- a/plugins/modules/nios_nsgroup.py +++ b/plugins/modules/nios_nsgroup.py @@ -11,7 +11,7 @@ DOCUMENTATION = ''' --- module: nios_nsgroup -short_description: Configure InfoBlox DNS Nameserver Authoritative Groups +short_description: Configure Infoblox DNS Nameserver Authoritative Groups version_added: "1.0.0" extends_documentation_fragment: infoblox.nios_modules.nios author: diff --git a/plugins/modules/nios_nsgroup_delegation.py b/plugins/modules/nios_nsgroup_delegation.py index 6eec00d..9323280 100644 --- a/plugins/modules/nios_nsgroup_delegation.py +++ b/plugins/modules/nios_nsgroup_delegation.py @@ -11,10 +11,11 @@ DOCUMENTATION = ''' --- module: nios_nsgroup_delegation -short_description: Configure InfoBlox DNS Nameserver Delegation Groups +short_description: Configure Infoblox DNS Nameserver Delegation Groups extends_documentation_fragment: infoblox.nios_modules.nios author: - Mauricio Teixeira (@badnetmask) +version_added: "1.7.0" description: - Adds and/or removes nameserver groups of type "Delegation" form Infoblox NIOS servers. This module manages NIOS C(nsgroup:delegation) objects using the Infoblox. WAPI interface over REST. diff --git a/plugins/modules/nios_nsgroup_forwardingmember.py b/plugins/modules/nios_nsgroup_forwardingmember.py index f1fb350..a8fc963 100644 --- a/plugins/modules/nios_nsgroup_forwardingmember.py +++ b/plugins/modules/nios_nsgroup_forwardingmember.py @@ -11,10 +11,11 @@ DOCUMENTATION = ''' --- module: nios_nsgroup_forwardingmember -short_description: Configure InfoBlox DNS Nameserver Forward/Stub Server Groups +short_description: Configure Infoblox DNS Nameserver Forwarding Member Groups extends_documentation_fragment: infoblox.nios_modules.nios author: - Mauricio Teixeira (@badnetmask) +version_added: "1.7.0" description: - Adds and/or removes nameserver groups of type "Forwarding Member" from Infoblox NIOS servers. This module manages NIOS C(nsgroup:forwardstubserver) objects using the Infoblox. WAPI interface over REST. diff --git a/plugins/modules/nios_nsgroup_forwardstubserver.py b/plugins/modules/nios_nsgroup_forwardstubserver.py index 7a9b285..e79cb47 100644 --- a/plugins/modules/nios_nsgroup_forwardstubserver.py +++ b/plugins/modules/nios_nsgroup_forwardstubserver.py @@ -11,10 +11,11 @@ DOCUMENTATION = ''' --- module: nios_nsgroup_forwardstubserver -short_description: Configure InfoBlox DNS Nameserver Forwarding Member Groups +short_description: Configure Infoblox DNS Nameserver Forward/Stub Server Groups extends_documentation_fragment: infoblox.nios_modules.nios author: - Mauricio Teixeira (@badnetmask) +version_added: "1.7.0" description: - Adds and/or removes nameserver groups of type "Forward/Stub Server" form Infoblox NIOS servers. This module manages NIOS C(nsgroup:forwardstubserver) objects using the Infoblox. WAPI interface over REST. diff --git a/plugins/modules/nios_nsgroup_stubmember.py b/plugins/modules/nios_nsgroup_stubmember.py index d10fbf5..8fd9b29 100644 --- a/plugins/modules/nios_nsgroup_stubmember.py +++ b/plugins/modules/nios_nsgroup_stubmember.py @@ -11,10 +11,11 @@ DOCUMENTATION = ''' --- module: nios_nsgroup_stubmember -short_description: Configure InfoBlox DNS Nameserver Stub Member Groups +short_description: Configure Infoblox DNS Nameserver Stub Member Groups extends_documentation_fragment: infoblox.nios_modules.nios author: - Mauricio Teixeira (@badnetmask) +version_added: "1.7.0" description: - Adds and/or removes nameserver groups of type "Stub Member" form Infoblox NIOS servers. This module manages NIOS C(nsgroup:stubmember) objects using the Infoblox. WAPI interface over REST. diff --git a/plugins/modules/nios_range.py b/plugins/modules/nios_range.py index f2bc751..47cd49a 100644 --- a/plugins/modules/nios_range.py +++ b/plugins/modules/nios_range.py @@ -11,7 +11,7 @@ module: nios_range author: "Matthew Dennett (@matthewdennett)" short_description: Configure Infoblox NIOS network range object -version_added: "1.4.0" +version_added: "1.5.0" description: - Adds and/or removes instances of range objects from Infoblox NIOS servers. This module manages NIOS DHCP range objects diff --git a/tests/integration/targets/nios_host_record/tasks/nios_host_record_idempotence.yml b/tests/integration/targets/nios_host_record/tasks/nios_host_record_idempotence.yml index 319ffbe..526b7b9 100644 --- a/tests/integration/targets/nios_host_record/tasks/nios_host_record_idempotence.yml +++ b/tests/integration/targets/nios_host_record/tasks/nios_host_record_idempotence.yml @@ -49,7 +49,7 @@ # TODO: Uncomment this block when the issue resolved -#- name: Add a comment to an existing host record +# - name: Add a comment to an existing host record # infoblox.nios_modules.nios_host_record: # name: host.ansible.com # ipv4: @@ -105,7 +105,7 @@ provider: "{{ nios_provider }}" register: ipv4_create5 -#- name: Recreate an ipv4 host record via DHCP and MAC +# - name: Recreate an ipv4 host record via DHCP and MAC # infoblox.nios_modules.nios_host_record: # name: host # configure_for_dns: false