Red Hat Training

A Red Hat training course is available for RHEL 8

21.7. RHEL システムロールを使用した静的ルートの設定

networking の RHEL システムロールを使用して、静的ルートを設定できます。

重要

network の RHEL システムロールを使用するプレイを実行すると、設定がプレイで指定されたものにマッチしない場合に、システムロールは、既存の接続プロファイルを上書きして上書きします。したがって、IP 設定がすでに存在している場合でも、再生でネットワーク接続プロファイルの設定全体を指定する必要があります。それ以外の場合は、ロールはこれらの値をデフォルト値にリセットします。

この手順では、すでに存在するかどうかに応じて、以下の設定で enp7s0 接続プロファイルを作成または更新します。

  • 静的 IPv4 アドレス: /24 サブネットマスクを持つ 198.51.100.20
  • 静的 IPv6 アドレス: 2001:db8:1::1/64 サブネットマスクあり)
  • IPv4 デフォルトゲートウェイ: 198.51.100.254
  • IPv6 デフォルトゲートウェイ: 2001:db8:1::fffe
  • IPv4 DNS サーバー: 198.51.100.200
  • IPv6 DNS サーバー: 2001:db8:1::ffbb
  • DNS 検索ドメイン: example.com
  • 静的ルート:

    • ゲートウェイ 198.51.100.1192.0.2.0/24
    • 203.0.113.0/24 のゲートウェイ 198.51.100.2

前提条件

  • ansible パッケージおよび rhel-system-roles パッケージがコントロールノードにインストールされている。
  • Playbook の実行時に root 以外のリモートユーザーを使用する場合は、管理ノードで適切な sudo パーミッションが付与される。

手順

  1. Playbook の命令を実行するホストのインベントリーがまだ指定されていない場合は、そのホストの IP または名前を Ansible インベントリーファイル /etc/ansible/hosts に追加します。

    node.example.com
  2. ~/add-static-routes.yml Playbook を以下の内容で作成します。

    ---
    - name: Configure an Ethernet connection with static IP and additional routes
      hosts: node.example.com
      become: true
      tasks:
      - include_role:
          name: linux-system-roles.network
    
        vars:
          network_connections:
            - name: enp7s0
              type: ethernet
              autoconnect: yes
              ip:
                address:
                  - 198.51.100.20/24
                  - 2001:db8:1::1/64
                gateway4: 198.51.100.254
                gateway6: 2001:db8:1::fffe
                dns:
                  - 198.51.100.200
                  - 2001:db8:1::ffbb
                dns_search:
                  - example.com
                route:
                  - network: 192.0.2.0
                    prefix: 24
                    gateway: 198.51.100.1
                  - network: 203.0.113.0
                    prefix: 24
                    gateway: 198.51.100.2
              state: up
  3. Playbook を実行します。

    • root ユーザーとして管理対象ホストに接続するには、次のコマンドを実行します。

      # ansible-playbook -u root ~/add-static-routes.yml
    • 管理ホストにユーザーとして接続するには、次のコマンドを実行します。

      # ansible-playbook -u user_name --ask-become-pass ~/add-static-routes.yml

      --ask-become-pass オプションは、ansible-playbook コマンドが -u user_name オプションで定義したユーザーの sudo パスワードを要求するようにします。

    -u user_name オプションを指定しないと、ansible-playbook は、コントロールノードに現在ログインしているユーザーとして管理ホストに接続します。

検証手順

  • ルーティングテーブルを表示します。

    # ip -4 route
    default via 198.51.100.254 dev enp7s0 proto static metric 100
    192.0.2.0/24 via 198.51.100.1 dev enp7s0 proto static metric 100
    203.0.113.0/24 via 198.51.100.2 dev enp7s0 proto static metric 100
    ...

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.network/README.md ファイル
  • ansible-playbook(1) man ページ