Menu Close
Settings Close

Language and Page Formatting Options

1.16.2. 別のローカルポートへの着信トラフィックの転送

rhel-system-roles.firewall ロールを使用すると、複数の管理対象ホストで設定が永続化されるので firewalld パラメーターをリモートで設定できます。

前提条件

  • RHEL サブスクリプションの資格を取得して、 ansible-core および rhel-system-roles パッケージをコントロールノードにインストールしている。
  • 管理対象ホストのインベントリーが制御マシンに存在し、Ansible から接続できる。
  • 管理対象ホストで Ansible Playbook を実行するパーミッションがある。
  • Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo 権限が付与される。
  • インベントリーファイルは、Playbook がアクションを実行するホストを一覧表示します。この手順の Playbook は、グループ testinservers のホストで実行します。
重要

RHEL 8.0-8.5 では、別の Ansible リポジトリーへのアクセス権を指定されており、Ansible をベースにする自動化用の Ansible Engine 2.9 が含まれています。Ansible Engine には、 ansibleansible-playbook などのコマンドラインユーティリティー、dockerpodman などのコネクター、プラグインとモジュールすべてが含まれています。Ansible Engine を入手してインストールする方法については、Red Hat Ansible Engine をダウンロードしてインストールする方法 を参照してください。

RHEL 8.6 以降では、Ansible Core (ansible-coreRPM として提供) が導入されました。これには、Ansible コマンドラインユーティリティー、コマンド、および組み込みの Ansible プラグインセットが少し含まれています。App Stream リポジトリーには、ansible-core が含まれていますが、サポートの範囲が限定されています。詳細は、RHEL 9App Stream に含まれている ansible-core パッケージのサポート範囲 を確認してください。

手順

  1. ~/port_forwarding.yml ファイルを作成し、以下の内容を追加します。

    ---
    - name: Forward incoming traffic on port 8080 to 443
      hosts: testingservers
    
      tasks:
        - include_role:
            name: rhel-system-roles.firewall
    
      vars:
        firewall:
          - { forward_port: 8080/tcp;443;, state: enabled, runtime: true, permanent: true }

    このファイルは Playbook を表し、通常は、inventory ファイルから選択した特定の管理対象ホストに対して実行される、プレイ とも呼ばれるタスクの順序付きリストが含まれます。この場合、Playbook は管理対象ホストの testingservers グループに対して実行されます。

    プレイの hosts キーは、プレイを実行するホストを指定します。このキーの値または値は、管理対象ホストの個別名または inventory ファイルで定義されているホストのグループとして指定できます。

    tasks セクションには include_role キーがあり、このキーは、vars セクションで説明されているパラメーターおよび値を設定するシステムロールを指定します。

    vars セクションには、firewall と呼ばれるロール変数が含まれます。この変数はディクショナリー値のリストで、管理対象ホストの firewalld に適用されるパラメーターを指定します。このサンプルのロールは、ポート 8080 に送信されるトラフィックを 443 ポートに転送します。この設定はすぐに有効になり、再起動後も維持されます。

  2. 必要に応じて、Playbook の構文が正しいことを確認します。

    # ansible-playbook --syntax-check ~/port_forwarding.yml
    
    playbook: port_forwarding.yml

    以下の例では、Playbook の検証が成功したことを示しています。

  3. Playbook を実行します。

    # ansible-playbook ~/port_forwarding.yml

検証

  • 管理対象ホスト:

    • ホストを再起動して、firewalld 設定が再起動後にも設定が維持されているかどうかを確認します。

      # reboot
    • firewalld 設定を表示します。

      # firewall-cmd --list-forward-ports

関連情報