9.4. 使用 RHEL 系统角色管理 firewalld 中的端口

您可以使用 RHEL firewall 系统角色为入站流量在本地防火墙中打开或关闭端口,并使新配置在重启后保留不变。例如,您可以配置默认区域,以允许 HTTPS 服务的传入流量。

在 Ansible 控制节点上执行此步骤。

先决条件

  • 您已准备好控制节点和受管节点
  • 以可在受管主机上运行 playbook 的用户登录到控制节点。
  • 用于连接到受管节点的帐户对其具有 sudo 权限。
  • 要在其上运行此 playbook 的受管节点或受管节点组列在 Ansible 清单文件中。

流程

  1. 创建包含以下内容的 playbook 文件,如 ~/opening-a-a-port.yml

    ---
    - name: Configure firewalld
      hosts: managed-node-01.example.com
      tasks:
      - name: Allow incoming HTTPS traffic to the local host
        include_role:
          name: rhel-system-roles.firewall
    
        vars:
          firewall:
            - port: 443/tcp
              service: http
              state: enabled
              runtime: true
              permanent: true

    permanent: true 选项可使新设置在重启后保持不变。

  2. 验证 playbook 语法:

    # ansible-playbook ~/opening-a-port.yml --syntax-check

    请注意,这个命令只验证语法,且不会防止错误但有效的配置。

  3. 运行 playbook:

    # ansible-playbook ~/opening-a-port.yml

验证

  • 在受管节点上,验证与 HTTPS 服务关联的 443/tcp 端口是否已打开:

    # firewall-cmd --list-ports
    443/tcp

其它资源

  • /usr/share/ansible/roles/rhel-system-roles.firewall/README.md