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.