On 6/25/20 3:51 PM, Cade Lambert wrote:
> My use case: we use Infoblox for our DNS.  What I'm trying to do is 
> automatically create a host record with the next
> available hostname that isn't already in DNS.  My plan was to loop through a 
> formatted hostname, incrementing a number
> in that hostname until a hostname is found that isn't already in Infoblox.  
> Here's what I have so far:
> 
>   - name: Assign next available IP address in your choosen vlan
>     nios_host_record:
>       name: "{{ 'hostname%02d' | format(item) }}"
>       ipv4:
>         - address: {nios_next_ip: '1.1.1.0/24'}
>       state: present
>       view: Internal
>       provider: "{{ provider }}"
>     loop: "{{ range(1, 5 + 1)|list }}"
>     register: loop_result
>     ignore_errors: true
> 

Hello Cade,

you could query first the existing DNS records in Infoblox and determine the 
next hostname from these results.

Regards
         Racke

> So for this example, in the DNS, there's already a hostname01, hostname02, 
> hostname03.  The output will be:
> 
> TASK [Assign next available IP address in your choosen vlan]
> *******************************************************************************************************************************
> failed: [localhost] (item=1) => {"ansible_loop_var": "item", "attempts": 1, 
> "changed": false, "code":
> "Client.Ibap.Data.Conflict", "item": 1, "msg": "The record 'hostname01' 
> already exists.", "operation": "create_object",
> "type": "AdmConDataError"}
> failed: [localhost] (item=2) => {"ansible_loop_var": "item", "attempts": 1, 
> "changed": false, "code":
> "Client.Ibap.Data.Conflict", "item": 2, "msg": "The record 'hostname02' 
> already exists.", "operation": "create_object",
> "type": "AdmConDataError"}
> failed: [localhost] (item=3) => {"ansible_loop_var": "item", "attempts": 1, 
> "changed": false, "code":
> "Client.Ibap.Data.Conflict", "item": 3, "msg": "The record 'hostname03' 
> already exists.", "operation": "create_object",
> "type": "AdmConDataError"}
> changed: [localhost] => (item=4)
> changed: [localhost] => (item=5)
> 
> I'd like it to stop processing the loop at item=4, since that's the first 
> success.  I've messed with a few different
> until statements at the end but nothing seems to really work.  Thanks.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to
> [email protected] 
> <mailto:[email protected]>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/3687c5df-e90d-4d50-af6c-38b467951ad3o%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/3687c5df-e90d-4d50-af6c-38b467951ad3o%40googlegroups.com?utm_medium=email&utm_source=footer>.


-- 
Ecommerce and Linux consulting + Perl and web application programming.
Debian and Sympa administration. Provisioning with Ansible.

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/d1c15738-438f-a57d-14e5-38afa89b8d0a%40linuxia.de.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to