Menu Close
Settings Close

Language and Page Formatting Options

1.5. 使用系统角色配置端口

您可以使用 Red Hat Enterprise Linux(RHEL) firewalld 系统角色为传入的流量打开或关闭本地防火墙中的端口,并在重新引导后保持新配置。这个示例描述了如何配置 default 区以允许 HTTPS 服务的传入流量。

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

先决条件

  • 可以访问一个或多个 受管节点,它们是您要使用 firewalld 系统角色来配置的系统。
  • 控制节点 的访问和权限,这是 Red Hat Ansible Core 配置其他系统的系统。
  • ansible-corerhel-system-roles 软件包在控制节点上安装。
  • 如果您在运行 playbook 时使用了与 root 不同的远程用户,则此用户在受管节点上具有合适的 sudo 权限。
  • 主机使用 NetworkManager 配置网络。

流程

  1. 如果您要在其上执行 playbook 中指令的主机还没有被列入清单,请将此主机的 IP 或名称添加到 /etc/ansible/hosts Ansible 清单文件中:

    node.example.com
  2. 使用以下内容创建 ~/adding-and-removing-ports.yml playbook:

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

    permanent: true 选项可使新设置在重新引导后仍然有效。

  3. 运行 playbook:

    • 要以 root 用户身份连接到受管主机,请输入:

      # ansible-playbook -u root ~/adding-and-removing-ports.yml
    • 以用户身份连接到受管主机,请输入:

      # ansible-playbook -u user_name --ask-become-pass ~/adding-and-removing-ports.yml

      --ask-become-pass 选项确保 ansible-playbook 命令提示输入 -u user_name 选项中定义的用户的 sudo 密码。

    如果没有指定 -u user_name 选项,ansible-playbook 以当前登录到控制节点的用户身份连接到受管主机。

验证

  1. 连接到受管节点:

    $ ssh user_name@node.example.com
  2. 验证与 HTTPS 服务关联的 443/tcp 端口是否打开:

    $ sudo firewall-cmd --list-ports
    443/tcp

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.network/README.md
  • ansible-playbook(1) 手册页