вот такой простенький таск по добавлению правила брандмауэра на windows хосты.
Так вот, если такого правила с таким именем в винде ещё не было, то таск отрабатывает нормально, но если правило с таким именем уже было, то таск затирает адреса которые были прописаны ранее, и заносит адреса из переменных {ip1_win1} и {ip1_win2}. А желательно чтоб добавлял, а не затирал. Помню сразу решение не нашёл и забил, стал просто давать разные имена правилам.
А как в этом случае сделать, чтобы он оставлял старые адреса и добавлял к ним новые? Ткните если не трудно.
---
- name: Add firewall rules on server1 for group "staging_win1" and "staging_win2"
gather_facts: no
hosts: server1
vars:
ip1_win1: "{{ groups['staging_win1'] | map('extract', hostvars, ['ansible_host']) | join(',') }}"
ip2_win2: "{{ groups['staging_win2'] | map('extract', hostvars, ['ansible_host']) | join(',') }}"
tasks:
- name: Allow input on TCP port 5555
win_firewall_rule:
name: ReportsRules
localport: 5555
remoteip: "{{ ip1_win1 }},{{ ip1_win2 }}"
action: allow
direction: in
protocol: tcp
state: present
enabled: yes
Подскажите кто-нибудь пожалуйста, что подправить в этом таске, чтобы не затирались уже имеющиеся айпишники в правиле файервола, а только новые добавлялись? Может кто дела что-то подобное именно с модулем win_firewall_rule?
в общем, может кому пригодиться, модуль "win_firewall_rule" не идемпотентен (судя по ответам на форуме ansible и на других ресурсах)
Обсуждают сегодня