Greetings Ansible users! I have a role "nftables" that is assigned to all nodes in my inventory. It has a variable 'forward_policy' that has a default value:
$ cat roles/nftables/defaults/main.yaml forward_policy: drop I'd like to have another role (applied only to my router system) that can override that variable: $ cat roles/router/vars/main.yaml forward_policy: accept I don't know how to override the variable in the nftables role from within the router role. Does anyone have any suggestions? Thanks for any help! -m PS. Here is are my current playbooks: roles ├── nftables │ ├── defaults │ │ └── main.yaml │ ├── files │ │ └── etc │ │ ├── nftables.conf │ │ └── nftables.conf.d │ │ └── 000-flush-ruleset.nft │ ├── handlers │ │ └── main.yaml │ ├── tasks │ │ └── main.yaml │ └── templates │ └── etc │ └── nftables.conf.d │ └── 050-default-chains.nft.j2 └── router ├── files │ └── etc │ └── nftables.conf.d │ └── 070-default-nat-table.nft ├── tasks │ ├── main.yaml │ └── nftables_nat_table.yaml └── vars └── main.yaml 17 directories, 10 files And the contents: ───────┬──────────────────────────────────────────────────────────────────────── │ File: hosts.yaml ───────┼──────────────────────────────────────────────────────────────────────── 1 │ ungrouped: 2 │ hosts: 3 │ zed: 4 │ 5 │ router: 6 │ hosts: 7 │ zed: ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: roles/nftables/defaults/main.yaml ───────┼──────────────────────────────────────────────────────────────────────── 1 │ forward_policy: drop ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: roles/nftables/files/etc/nftables.conf ───────┼──────────────────────────────────────────────────────────────────────── 1 │ #!/usr/sbin/nft -f 2 │ 3 │ include "/etc/nftables.conf.d/*.nft" ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: roles/nftables/files/etc/nftables.conf.d/000-flush-ruleset.nft ───────┼──────────────────────────────────────────────────────────────────────── 1 │ flush ruleset ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: roles/nftables/handlers/main.yaml ───────┼──────────────────────────────────────────────────────────────────────── 1 │ - 2 │ name: restart nftables 3 │ service: 4 │ name: nftables 5 │ state: restarted ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: roles/nftables/tasks/main.yaml ───────┼──────────────────────────────────────────────────────────────────────── 1 │ --- 2 │ # This playbook contains plays to configure nftables. 3 │ 4 │ - 5 │ name: enable service nftables 6 │ service: 7 │ name: nftables 8 │ enabled: yes 9 │ 10 │ - 11 │ name: configure nftables.conf 12 │ copy: 13 │ src: files/etc/nftables.conf 14 │ dest: /etc/nftables.conf 15 │ tags: 16 │ - nftables 17 │ notify: restart nftables 18 │ 19 │ - 20 │ name: configure nftables.conf.d 21 │ copy: 22 │ src: files/etc/nftables.conf.d 23 │ dest: /etc 24 │ tags: 25 │ - nftables 26 │ notify: restart nftables 27 │ 28 │ - 29 │ name: configure nftables.conf.d/050-default-chains.nft 30 │ template: 31 │ src: etc/nftables.conf.d/050-default-chains.nft.j2 32 │ dest: /etc/nftables.conf.d/050-default-chains.nft 33 │ tags: 34 │ - nftables 35 │ notify: restart nftables ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: roles/nftables/templates/etc/nftables.conf.d/050-default-chains.nft.j2 ───────┼──────────────────────────────────────────────────────────────────────── 1 │ table inet filter { 2 │ chain input { 3 │ type filter hook input \ 4 │ priority 0; 5 │ policy accept; 6 │ } 7 │ chain forward { 8 │ type filter hook forward \ 9 │ priority 0; 10 │ policy {{ forward_policy }}; 11 │ } 12 │ chain output { 13 │ type filter hook output \ 14 │ priority 0; 15 │ policy accept; 16 │ } 17 │ } ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: roles/router/files/etc/nftables.conf.d/070-default-nat-table.nft ───────┼──────────────────────────────────────────────────────────────────────── 1 │ table inet nat { 2 │ chain postrouting { 3 │ type nat hook postrouting \ 4 │ priority srcnat; 5 │ } 6 │ 7 │ chain prerouting { 8 │ type nat hook prerouting \ 9 │ priority dstnat; 10 │ } 11 │ } ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: roles/router/tasks/main.yaml ───────┼──────────────────────────────────────────────────────────────────────── 1 │ --- 2 │ # This playbook contains plays to configure the router. 3 │ 4 │ - 5 │ include_tasks: nftables_nat_table.yaml ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: roles/router/tasks/nftables_nat_table.yaml ───────┼──────────────────────────────────────────────────────────────────────── 1 │ --- 2 │ # This playbook contains plays to add nat table for nftables. 3 │ 4 │ - 5 │ name: configure nftables nat table 6 │ copy: 7 │ src: files/etc/nftables.conf.d/070-default-nat-table.nft 8 │ dest: /etc/nftables.conf.d/070-default-nat-table.nft 9 │ tags: 10 │ - router 11 │ notify: restart nftables ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: roles/router/vars/main.yaml ───────┼──────────────────────────────────────────────────────────────────────── 1 │ forward_policy: accept ───────┴──────────────────────────────────────────────────────────────────────── ───────┬──────────────────────────────────────────────────────────────────────── │ File: site.yaml ───────┼──────────────────────────────────────────────────────────────────────── 1 │ --- 2 │ - 3 │ name: apply common configuration to all nodes 4 │ hosts: all 5 │ roles: 6 │ - nftables 7 │ 8 │ - 9 │ name: apply router configurations 10 │ hosts: router 11 │ roles: 12 │ - router ───────┴──────────────────────────────────────────────────────────────────────── -- 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 ansible-project+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAOLfK3XnbN4ZjHCvzfi7KUgTkQgQ8W02gqkvYyu708Z_qB3aCA%40mail.gmail.com.