Ik ben vrij nieuw met Ansible (meer ervaring met Terraform en Powershell). Ik probeer op dit moment tegen mijn Fortigate firewall aan te "praten". Dit gaat al vrij aardig. Nu loop ik echter tegen een uitdaging aan waar hopelijk iemand mij op weg kan helpen (kant en klaar antwoord mag, maar juiste push in de goede richting is zeker gewaardeerd).
Ik kan al individuele objecten aanmaken via Ansible op mijn firewall. Nu wil ik dit graag via vars files oplossen waarbij ik een loop opzet over de verschillende objecten in mijn yaml file.
Onderstaand mijn playbook:
Onderstaand mijn addresses.yml:
Nu krijg ik onderstaande error:
Relevante software en hardware die ik gebruik
- WSL met Ubuntu 24.04
- Laatste Ansible versie
Wat ik al gevonden of geprobeerd heb
Ik heb zelf al geprobeerd om de Yaml online te laten valideren. Hier komen geen fouten uit. Ook heb ik geprobeerd om in plaats van loop with_items te gebruiken.
Ik kan al individuele objecten aanmaken via Ansible op mijn firewall. Nu wil ik dit graag via vars files oplossen waarbij ik een loop opzet over de verschillende objecten in mijn yaml file.
Onderstaand mijn playbook:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| - hosts: fortigate01 connection: httpapi collections: - fortinet.fortios vars: ansible_httpapi_use_ssl: true ansible_httpapi_validate_certs: false ansible_httpapi_port: 443 vars_files: - addresses.yml tasks: - name: Configure addresses. fortinet.fortios.fortios_firewall_address: vdom: root state: present firewall_address: name: '{{ item.name }}' subnet: '{{ item.subnet }}' # with_items: '{{ addresses }}' loop: '{{ addresses | dict2items }}' |
Onderstaand mijn addresses.yml:
code:
1
2
3
4
5
| addresses: - name: win1101-001p subnet: 10.0.0.1/32 - name: win1101-002p subnet: 10.0.0.2/32 |
Nu krijg ik onderstaande error:
code:
1
| fatal: [fortigate01]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'item' is undefined. 'item' is undefined\n\nThe error appears to be in '/home/test/playbooks/fortiaddress.yml': line 12, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n tasks:\n - name: Configure addresses.\n ^ here\n"} |
Relevante software en hardware die ik gebruik
- WSL met Ubuntu 24.04
- Laatste Ansible versie
Wat ik al gevonden of geprobeerd heb
Ik heb zelf al geprobeerd om de Yaml online te laten valideren. Hier komen geen fouten uit. Ook heb ik geprobeerd om in plaats van loop with_items te gebruiken.