Ansible-Roles/roles/firewall/tasks/firewalld.yml
2026-05-08 22:12:36 +03:00

52 lines
2 KiB
YAML

---
- name: Determine if system is booted with systemd
when: __firewall_is_booted is not defined
block:
- name: Run systemctl
# noqa command-instead-of-module
ansible.builtin.command: systemctl is-system-running
register: __is_system_running
changed_when: false
failed_when: false
check_mode: "{{ __firewall_test_check_mode | d(ansible_check_mode) }}"
- name: Require installed systemd
ansible.builtin.fail:
msg: "Error: This role requires systemd to be installed."
when: '"No such file or directory" in __is_system_running.msg | d("")'
- name: Set flag to indicate that systemd runtime operations are available
ansible.builtin.set_fact:
# see https://www.man7.org/linux/man-pages/man1/systemctl.1.html#:~:text=is-system-running%20output
__firewall_is_booted: "{{ __is_system_running.stdout != 'offline' }}"
- name: Install firewalld
ansible.builtin.package:
name: "{{ __firewall_packages_base + __firewall_packages_extra }}"
state: present
use: "{{ (__firewall_is_ostree | d(false)) | ternary('ansible.posix.rhel_rpm_ostree', omit) }}"
register: firewall_package_result
check_mode: "{{ __firewall_test_check_mode | d(ansible_check_mode) }}"
- name: Handle reboot for transactional update systems
when:
- __firewall_is_transactional | d(false)
- firewall_package_result is changed
block:
- name: Notify user that reboot is needed to apply changes
ansible.builtin.debug:
msg: >
Reboot required to apply changes due to transactional updates.
- name: Reboot transactional update systems
ansible.builtin.reboot:
msg: Rebooting the system to apply transactional update changes.
when: firewall_transactional_update_reboot_ok | bool
- name: Fail if reboot is needed and not set
ansible.builtin.fail:
msg: >
Reboot is required but not allowed. Please set 'firewall_transactional_update_reboot_ok' to proceed.
when:
- firewall_transactional_update_reboot_ok is none