{"id":22139160,"url":"https://github.com/network-automation/dynamic-infoblox","last_synced_at":"2026-02-28T09:32:23.706Z","repository":{"id":61158029,"uuid":"143874067","full_name":"network-automation/dynamic-infoblox","owner":"network-automation","description":"A collection of Ansible Roles to automate Infoblox Core Network Services","archived":false,"fork":false,"pushed_at":"2018-08-28T02:47:42.000Z","size":38,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-07-26T03:47:59.650Z","etag":null,"topics":["ansible","dns","grid","infoblox","wapi"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/network-automation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-07T13:03:17.000Z","updated_at":"2022-10-10T06:56:06.000Z","dependencies_parsed_at":"2022-10-11T23:34:21.838Z","dependency_job_id":null,"html_url":"https://github.com/network-automation/dynamic-infoblox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/network-automation/dynamic-infoblox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/network-automation%2Fdynamic-infoblox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/network-automation%2Fdynamic-infoblox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/network-automation%2Fdynamic-infoblox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/network-automation%2Fdynamic-infoblox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/network-automation","download_url":"https://codeload.github.com/network-automation/dynamic-infoblox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/network-automation%2Fdynamic-infoblox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29929350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ansible","dns","grid","infoblox","wapi"],"created_at":"2024-12-01T20:13:52.626Z","updated_at":"2026-02-28T09:32:23.686Z","avatar_url":"https://github.com/network-automation.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Dynamically create host records in Infoblox using Ansible!\n\nA collection of roles featuring some of Infoblox's new integration in Core v2.5 to: \n1. Create zones and add host records at the next available ip addresses using a Name Server Group\n2. Start the DNS service on the Grid Master\n3. Predefine a Grid Master Candidate\n4. Predefine a Grid Member\n5. Join a Grid Master Candidate or Grid Member to a Grid\n6. Update a Name Server Group to account for new Infoblox Grid appliances\n7. Take a configuration snapshot\n\nRequirements\n------------\n\nThe infoblox-client installed on the targeted localhost machine. Ansible Core \u003e= v2.5 for the infoblox modules and lookup plugin.\n\nRole Variables\n--------------\nExample nios_provider supplied below. This should be vaulted in group_vars/localhost/main.yml for production use.\n\n```yaml\nnios_provider:\n   #Out-of-the-box defaults specified here\n   host: 192.168.1.2\n   username: admin\n   password: infoblox\n\nwapi_version: 'v2.7'\n```\n\nExample Playbooks\n-----------------\nMost automation functionality in this repository is better demonstrated by calling of roles (see below), but each role has a corresponding playbook that can be called for the same effect.\n\nHere are some of the common overrides at the playbook level of this repository's core role, dynamicInfoblox:\n\n```\nansible-playbook create_dynamic_records.yml\nansible-playbook create_dynamic_records.yml -e \"host_count=10\"\nansible-playbook create_dynamic_records.yml -e \"ansible_zone=redhat.com\"\nansible-playbook create_dynamic_records.yml -e \"ansible_subnet=10.10.10.0/24\"\n```\n\nAnother example playbook creates a snapshot of the gridmaster configuration at any time:\n```\nansible-playbook take_snapshot.yml\n```\n_Note: Restoring the snapshot is currently a manual step but I hope to have automation here soon too._\n\nThis calls a master playbook to demo the invocation of several roles in succession:\n```\nansible-playbook master-demo-playbook.yml\n```\n\n\nRole Calls\n-----------------\nOverrides at the role level allow single playbooks to call the same roles in succession with new network information.\n\nThe default invocation creates a forward/reverse zone, subnet, and gateway address using out-of-the-box configurations, but does not generate additional hosts:\n```yaml\n    - hosts: localhost\n      connection: local\n      roles:\n         - { role: dynamicInfoblox }\n```\nSpecify a host_count to create (several) new host records at a time:\n```yaml\n         - { role: dynamicInfoblox, host_count: 10 }\n```\nOverride the default zone:\n```yaml\n         - { role: dynamicInfoblox, ansible_zone: redhat.com }\n```\nOverride the default subnet. The default gateway_address is automated to reflect changes overriden here:\n```yaml\n         - { role: dynamicInfoblox, ansible_subnet: 10.10.10.0/24 }\n```\nStart the dns service on an Infoblox appliance:\n```yaml\n         - { role: updateService, grid_fqdn: gm.ansible.local, state: started }\n```\nPredefine a new Grid Master Candidate:\n```yaml\n         - { role: predefineGridmasterCandidate, master_candidate_name: gmc.ansible.local, master_candidate_address: 192.168.2.2, master_candidate_gateway: 192.168.2.254, master_candidate_subnet_mask:255.255.255.0 }\n```\nPredefine a new Grid Member:\n```yaml\n         - { role: predefineGridmember, member_name: gmc.ansible.local, member_address: 192.168.2.2, member_gateway: 192.168.2.254, member_subnet_mask:255.255.255.0 }\n```\nJoin a Grid Master Candidate or Grid Member to the Grid:\n```yaml         \n         - { role: joinGrid, join_grid_host: 192.168.2.3 }\n```         \nTake a snapshot of Infoblox configuration:\n```yaml\n         - { role: snapshotConfiguration }\n```\n\nAuthor Information\n------------------\n```\nBranden Pleines\nBret Pleines\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetwork-automation%2Fdynamic-infoblox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetwork-automation%2Fdynamic-infoblox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetwork-automation%2Fdynamic-infoblox/lists"}