{"id":13759840,"url":"https://github.com/infobloxopen/infoblox-ansible","last_synced_at":"2025-04-06T10:10:18.144Z","repository":{"id":24407588,"uuid":"101414243","full_name":"infobloxopen/infoblox-ansible","owner":"infobloxopen","description":"Ansible modules for interfacing to Infoblox systems","archived":false,"fork":false,"pushed_at":"2025-01-29T13:16:59.000Z","size":662,"stargazers_count":57,"open_issues_count":72,"forks_count":66,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-30T09:05:26.797Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/infobloxopen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-25T14:52:59.000Z","updated_at":"2025-02-14T23:33:28.000Z","dependencies_parsed_at":"2023-12-05T05:31:04.247Z","dependency_job_id":"f9bdd703-d287-4321-841d-4a3926b225a5","html_url":"https://github.com/infobloxopen/infoblox-ansible","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infobloxopen%2Finfoblox-ansible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infobloxopen%2Finfoblox-ansible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infobloxopen%2Finfoblox-ansible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infobloxopen%2Finfoblox-ansible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/infobloxopen","download_url":"https://codeload.github.com/infobloxopen/infoblox-ansible/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247464198,"owners_count":20942969,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T13:00:59.885Z","updated_at":"2025-04-06T10:10:18.110Z","avatar_url":"https://github.com/infobloxopen.png","language":"Python","funding_links":[],"categories":["NIOS","Automation","Non-Core Ansible Modules"],"sub_categories":["Ansible","NETCONF"],"readme":"# Infoblox NIOS Modules for Ansible Collections\n\nInfoblox NIOS Modules for Ansible Collections enable the management of your NIOS objects through APIs. \n\n## Description\nInfoblox NIOS Modules for Ansible Collections facilitate the DNS and IPAM automation of \nVM workloads that are deployed across multiple platforms. The `nios_modules` collection consists of modules and plug-ins required to manage the networks,\nIP addresses, and DNS records in NIOS. The collection is hosted on Ansible Galaxy under `infoblox.nios_modules`.\n\n### Modules Overview\n\nThe `infoblox.nios_modules` collection has the following content:\n\n##### Modules\n\n- `nios_a_record` – Configure Infoblox NIOS A records\n- `nios_aaaa_record` – Configure Infoblox NIOS AAAA records\n- `nios_adminuser` – Configure Infoblox NIOS Adminuser\n- `nios_cname_record` – Configure Infoblox NIOS CNAME records\n- `nios_dns_view` – Configure Infoblox NIOS DNS views\n- `nios_dtc_lbdn` – Configure Infoblox NIOS DTC LBDN records\n- `nios_dtc_monitor_http` – Configure Infoblox NIOS DTC HTTP monitors\n- `nios_dtc_monitor_icmp` – Configure Infoblox NIOS DTC ICMP monitors\n- `nios_dtc_monitor_pdp` – Configure Infoblox NIOS DTC PDP monitors\n- `nios_dtc_monitor_sip` – Configure Infoblox NIOS DTC SIP monitors\n- `nios_dtc_monitor_snmp` – Configure Infoblox NIOS DTC SNMP monitors\n- `nios_dtc_monitor_tcp` – Configure Infoblox NIOS DTC TCP monitors\n- `nios_dtc_pool` – Configure Infoblox NIOS DTC pools\n- `nios_dtc_server` – Configure Infoblox NIOS DTC server records\n- `nios_dtc_topology` – Configure Infoblox NIOS DTC topologies\n- `nios_extensible_attribute` - Configure Infoblox NIOS extensible attributes\n- `nios_fixed_address` – Configure Infoblox NIOS DHCP Fixed Address\n- `nios_host_record` – Configure Infoblox NIOS host records\n- `nios_member` – Configure Infoblox NIOS members\n- `nios_mx_record` – Configure Infoblox NIOS MX records\n- `nios_naptr_record` – Configure Infoblox NIOS NAPTR records\n- `nios_network` – Configure Infoblox NIOS network object\n- `nios_network_view` – Configure Infoblox NIOS network views\n- `nios_nsgroup` – Configure Infoblox DNS Authoritative Name server Groups\n- `nios_nsgroup_delegation` – Configure Infoblox DNS Delegation Name server Groups\n- `nios_nsgroup_forwardingmember` – Configure Infoblox DNS Forwarding Member Name server Groups\n- `nios_nsgroup_forwardstubserver` – Configure Infoblox DNS Forward/Stub Server Name server Groups\n- `nios_nsgroup_stubmember` – Configure Infoblox DNS Stub Member Name server Groups\n- `nios_ptr_record` – Configure Infoblox NIOS PTR records\n- `nios_range` - Configure Infoblox NIOS Network Range object\n- `nios_restartservices` - Controlled restart of Infoblox NIOS services\n- `nios_srv_record` – Configure Infoblox NIOS SRV records\n- `nios_txt_record` – Configure Infoblox NIOS txt records\n- `nios_vlan` – Configure Infoblox NIOS vlan\n- `nios_zone` – Configure Infoblox NIOS DNS zones\n\n#### Plugins\n\n- `nios_inventory`: List all the hosts with records created in NIOS\n- `nios_lookup`: Look up queries for NIOS database objects\n- `nios_next_ip`: Return the next available IP address for a network\n- `nios_next_network`: Return the next available network addresses\n    for a given network CIDR\n- `nios_next_vlan_id`: Return the next available VLAN IDs for a given VLAN View/Range.\n\n## Requirements\n\n- Python version 3.10 or later\n- Ansible Core version 2.16 or later\n- NIOS 8.6.x and 9.0.x\n- Infoblox WAPI version 2.12.3 or later\n- Python module infoblox-client version 0.6.2\n \n Install the infoblox-client WAPI package. To install, run the following command:\n```shell\npip install infoblox-client==0.6.2\n```\n\n## Installation\n\nTo install nios module with the Ansible Galaxy command-line tool:\n\n```\nansible-galaxy collection install infoblox.nios_modules\n```\n\nYou can also include it in a requirements.yml file and install it with `ansible-galaxy collection install -r requirements.yml`, using the format:\n\n```yaml\ncollections:\n    - name: infoblox.nios_modules\n```\n\nNote that if you install any collection from Ansible Galaxy, they will not be upgraded automatically when you upgrade the Ansible package. \nTo upgrade the collection to the latest available version, run the following command:\n\n```\nansible-galaxy collection install infoblox.nios_modules --upgrade\n```\n\nYou can also install a specific version of the collection. For example, due to an issue of the latest version,\nif you need to downgrade the collection to a prior version, use the following command to install the specific version:\n\n```\nansible-galaxy collection install infoblox.nios_modules:==\u003cversion\u003e\n```\n\nSee [using Ansible collections](https://docs.ansible.com/ansible/devel/user_guide/collections_using.html) for more details.\n\n### Installation from GitHub\n\n- Install the collection directly from the [GitHub](https://github.com/infobloxopen/infoblox-ansible) repository using the latest commit on the master branch:\n```shell\n$ ansible-galaxy collection install git+https://github.com/infobloxopen/infoblox-ansible.git,master\n```\n\n- For offline installation on the Ansible control machine, follow the below steps to clone the git repository and install from the repository:\n\n  1. **Clone the repo:**\n      ```\n      $ git clone https://github.com/infobloxopen/infoblox-ansible.git\n      ```\n\n  2. **Build the collection:**\n      To build a collection, run the following command from inside the root directory of the collection:\n      ```\n      $ ansible-galaxy collection build\n      ```\n      This creates a tarball of the built collection in the current directory.\n\n  3. **Install the collection:**\n      ```\n      $ ansible-galaxy collection install infoblox-nios_modules-\u003cversion\u003e.tar.gz -p ./collections\n      ```\n\nPlease refer to our Ansible [deployment guide](https://docs.infoblox.com/space/niosmodulesansible) for more details.\n\n## Use Cases\n\n\n### 1. Automated DNS Record Management\n\n**Description:** Automatically create, update, and delete DNS records in Infoblox NIOS based on changes in your infrastructure.\n\n**Example:**\n```yaml\n- name: Create a DNS A record\n  infoblox.nios_modules.nios_a_record:\n    name: \"host.example.com\"\n    ipv4addr: \"192.168.1.10\"\n    state: \"present\"\n```\n\n### 2. IP Address Allocation\n\n**Description:** Dynamically allocate and manage IP addresses for virtual machines and other devices in your network.\n\n**Example:**\n```yaml\n- name: Allocate an IP address\n  infoblox.nios_modules.nios_fixed_address:\n    ipv4addr: \"192.168.1.20\"\n    mac: \"00:50:56:00:00:01\"\n    state: \"present\"\n```\n\n### 3. Network Management\n\n**Description:** Create and manage network segments and subnets within Infoblox NIOS.\n\n**Example:**\n```yaml\n- name: Create a network\n  infoblox.nios_modules.nios_network:\n    network: \"192.168.2.0/24\"\n    comment: \"Development network\"\n    state: \"present\"\n```\n\n### 4. DHCP Scope Management\n\n**Description:** Manage DHCP scopes to ensure efficient IP address distribution and avoid conflicts.\n\n**Example:**\n```yaml\n- name: Create a DHCP range\n  infoblox.nios_modules.nios_range:\n    network: \"192.168.3.0/24\"\n    start_addr: \"192.168.3.10\"\n    end_addr: \"192.168.3.100\"\n    state: \"present\"\n```\n\n### 5. DTC Object Management\n\n**Description:** Manage DNS Traffic Control (DTC) objects to optimize traffic distribution and ensure high availability.\n\n**Example:**\n```yaml\n- name: Create a DTC Pool\n  infoblox.nios_modules.nios_dtc_pool:\n    name: \"example_pool\"\n    lb_method: \"round_robin\"\n    state: \"present\"\n```\n\n### 6. Lookups\n\n**Description:** Perform lookups to retrieve information about existing NIOS objects.\n\n**Example:**\n```yaml\n- name: fetch the default dns view\n  ansible.builtin.set_fact:\n    dns_views: \"{{ lookup('infoblox.nios_modules.nios_lookup', 'view', filter={'name': 'default'},\n                  provider={'host': 'nios01', 'username': 'admin', 'password': 'password'}) }}\"\n```\n\n### 7. Next Available Functionality\n\n**Description:** Retrieve the next available IP address or network in a specified range or network.\n\n**Example:**\n```yaml\n- name: return next available IP address for network 192.168.10.0/24\n  ansible.builtin.set_fact:\n    ipaddr: \"{{ lookup('infoblox.nios_modules.nios_next_ip', '192.168.10.0/24', provider={'host': 'nios01', 'username': 'admin', 'password': 'password'}) }}\"\n```\n\nFor more detailed examples and playbooks, refer to the `playbooks` directory in the `infoblox-ansible` repository.\n\n\n## Testing\n\nThe collection has been tested in the following environments:\n\n- **Operating Systems:**\n    - Ubuntu 20.04 LTS\n    - Mac\n\n- **Ansible Versions:**\n    - Ansible Core 2.16\n    - Ansible Core 2.17\n    - Ansible Core 2.18\n\n- **NIOS Versions:**\n    - NIOS 8.6.x\n    - NIOS 9.0.x\n\n### Known Exceptions and Workarounds\n\n- For detailed information on testing and performance, refer to the `tests` directory in the `infoblox-ansible` repository.\n- The `use_dns_ea_inheritance` option for Host Records is compatible only with WAPI versions 2.12.3 or 2.13.4 and later. \n\n## Contributing\n\nWe welcome your contributions to Infoblox Nios Modules. See [CONTRIBUTING.md](https://github.com/infobloxopen/infoblox-ansible/blob/master/CONTRIBUTING.md) for more details.\n\n## Support\n\n### Supported Versions\n\nInfoblox NIOS Modules for Ansible Collections supports the following versions:\n- **NIOS Versions:** 8.6.x and 9.0.x\n- **Ansible Core Versions:** 2.16 and later\n- **Python Versions:** 3.10 and later\n\n### How to Get Support\n\nIf you need assistance with the Infoblox NIOS Modules, you can get support through the following channels:\n\n- **GitHub Issues:**\n    - Submit your issues or requests for enhancements on the [GitHub Issues](https://github.com/infobloxopen/infoblox-ansible/issues) page.\n\n- **Infoblox Support:**\n    - For enterprise support, contact Infoblox Support through the [Infoblox Support Portal](https://support.infoblox.com).\n\nFor any other inquiries, please refer to the [Infoblox Contact Page](https://www.infoblox.com/company/contact-us/).\n\n## Release Notes and Roadmap\n\nFor 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).\n\n## Related Information\n\nFor more detailed documentation and examples, refer to the following resources:\n- Infoblox [NIOS modules](https://docs.ansible.com/ansible/latest/collections/infoblox/nios_modules/index.html) on Ansible documentation\n- Infoblox [workspace](https://galaxy.ansible.com/ui/repo/published/infoblox/nios_modules) in Ansible Galaxy\n- Infoblox Ansible [deployment guide](https://docs.infoblox.com/space/niosmodulesansible)\n- [CONTRIBUTING.md](https://github.com/infobloxopen/infoblox-ansible/blob/master/CONTRIBUTING.md) for contribution guidelines\n\n## License Information\n\nThis code is published under `GPL v3.0` [COPYING](https://github.com/infobloxopen/infoblox-ansible/blob/master/COPYING)\n\n## Issues or RFEs\n\nYou can open an issue or request for enhancement [here](https://github.com/infobloxopen/infoblox-ansible/issues)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfobloxopen%2Finfoblox-ansible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfobloxopen%2Finfoblox-ansible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfobloxopen%2Finfoblox-ansible/lists"}