Как изменить зону Firewalld с помощью Ansible?

Когда я запускаю это, он говорит об успешном выполнении, но интерфейс по умолчанию по-прежнему настроен на общедоступную зону. Что дает?

- firewalld:
    zone: public
    interface: "{{ ansible_default_ipv4.interface }}"
    permanent: true
    immediate: true
    state: disabled

- firewalld:
    zone: trusted
    interface: "{{ ansible_default_ipv4.interface }}"
    permanent: true
    immediate: true
    state: enabled

person Ozfer    schedule 27.07.2018    source источник
comment
Это на РХЕЛ 7   -  person Ozfer    schedule 27.07.2018
comment
Вы пробовали наоборот, помещая интерфейс сначала в trusted, а затем удаляя его из public.   -  person Baptiste Mille-Mathias    schedule 27.07.2018
comment
да пробовал и так и так. Я также пробовал, не удаляя public и просто делая его доверенным, и это тоже не сработало.   -  person Ozfer    schedule 27.07.2018


Ответы (2)


Я не думаю, что модуль firewalld поддерживает установку зоны по умолчанию как таковой. Документы говорят, что zone это:

Зона firewalld для добавления/удаления [правила] в/из

Также:

Транзакции зоны (создание, удаление) могут быть выполнены с использованием только зоны и параметров состояния «присутствует» или «отсутствует».

Я так понимаю, что вы можете создавать/удалять зоны и добавлять/удалять правила в них, но не устанавливать зону по умолчанию. Это согласуется с поведением, которое я видел, используя аналогичную конфигурацию для OP.

Теперь я установил зону по умолчанию в конфигурации Ansible, используя модуль command, например.

- name: Set dmz as default policy
  command: firewall-cmd --set-default-zone=dmz
person hillsy    schedule 09.05.2019

после запуска вы перезагрузили firewalld, чтобы применить эффекты? все, что я вижу из задач, это то, что вы отключаете и включаете его. Вы также можете добавить обработчики для перезапуска службы после ее завершения https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html#handlers-running-operations-on-change. Вам также следует попробовать запустить с параметром -vvv, чтобы увидеть результат и убедиться, что он делает то, что вы ожидаете.

person jlozadad    schedule 27.07.2018
comment
Я запускаю -vvv, и он говорит, что успешно/изменено. Немедленный флаг должен сделать так, чтобы его не нужно было перезагружать, но я также перезагружаю его ниже, чтобы он перезагружался. Постоянная и непостоянная (немедленная) операция, изменена (интерфейс) на доверенную зону} - person Ozfer; 27.07.2018
comment
так если перезагрузить в низ то как выглядит целевой хост? используйте pastebin, чтобы поместить журналы, чтобы их было легче читать. - person jlozadad; 27.07.2018
comment
Он применяет все настройки к общедоступным, а не к доверенным, и общедоступный устанавливается в качестве активного интерфейса. - person Ozfer; 27.07.2018
comment
прочитайте примечания к документации модуля ` Это ограничение в firewalld. Это также означает, что вам придется перезагрузить firewalld после добавления зоны, над которой вы хотите выполнить немедленные действия. Модуль не позаботится об этом за вас неявно, потому что это отменит любые ранее выполненные немедленные действия, которые не были постоянными. Поэтому, если вам требуется немедленный доступ к вновь созданной зоне, рекомендуется перезагрузить firewalld сразу же после того, как создание зоны вернется с измененным состоянием, и до того, как вы выполните какие-либо другие немедленные непостоянные действия в этой зоне. ` - person jlozadad; 27.07.2018
comment
говоря, что это не работает, не дает нам достаточно подробностей для устранения неполадок. Вы должны показать все playbook/roles и все, что вы делаете с журналами -vvvv в pastebin, чтобы было легче устранять неполадки. Вы также проверили, не является ли это ошибкой? какая версия ансибла? - person jlozadad; 27.07.2018
comment
Доступный 2.4.2. Это буквально говорит о постоянной и непостоянной (немедленной) операции, измененной (интерфейс) на доверенную зону}. Я не знаю, является ли это ошибкой. - person Ozfer; 27.07.2018