linux-system-roles.network

linux-system-roles/network

概要

network ロールは、ターゲットマシンのネットワークを設定するためのものです。 このロールは、以下のような設定が可能です:

  • Ethernet インターフェース
  • ブリッジインターフェース
  • ボンディングインターフェース
  • VLAN インターフェース
  • MacVLAN インターフェース
  • InfiniBand インターフェース
  • ワイヤレス(WiFi)インターフェース
  • IP 設定
  • 802.1x 認証

はじめに

network ロールは、nminitscripts の2つのプロバイダーをサポートします。デフォルトでは RHEL7 以降は nm が使用され、RHEL6 は initscripts です。initscripts プロバイダーは、RHEL8 で非推奨となった network-scripts パッケージが必要です。プロバイダーは network_provider 変数を通じてホストごとに設定可能です。明示的な設定がない場合、ディストリビューションに基づいて自動的に検出されます。ただし、nminitscripts は特定のディストリビューションに依存しません。

network ロールは、network_connections および network_state の2つのモジュールをサポートします。

各ホストに対しては、network_connections 変数を通じてネットワーキングプロファイルのリストを設定できます。

  • initscripts では、プロファイルは /etc/sysconfig/network-scripts/ ディレクトリ内の ifcfg ファイルに対応し、これらの ifcfg ファイルには NM_CONTROLLED=no の行が書かれています。
  • nm では、プロファイルは NetworkManager によって処理される接続プロファイルに対応し、RHEL9 以降では /etc/NetworkManager/system-connections/ 内の NetworkManager キーファイル形式のプロファイルのみがサポートされています。

各ホストにおいて、network_state 変数を介してインターフェースに直接ネットワーク状態設定を適用することも可能です。なお、network_state 変数は nm プロバイダーでのみサポートされています。

network ロールは、デバイスの接続プロファイル(network_connections 変数を介して)およびデバイス自体(network_state 変数を介して)に対して操作を行います。ロールを通じて接続プロファイルを設定する際、デフォルトではプロファイル名をインターフェース名として使用します。

警告network ロールは、network_connections 変数で指定された通り、ターゲットシステム上のすべての接続プロファイルを更新または作成します。したがって、オプションが指定されたプロファイルから削除される可能性があります。この点については以下に例外があります。ただし、部分的なネットワーキング設定は network_state 変数でネットワーク状態設定を指定することによって実現できます。

要件

詳細は以下をご覧ください。

コレクションの要件

このロールは、rpm-ostree ノードの管理のために外部コレクションのみを必要とします。rpm-ostree ノードを管理する必要がある場合は、以下のコマンドを実行してインストールしてください:

ansible-galaxy collection install -vv -r meta/collection-requirements.yml

変数

network ロールは、network_ という名前のプレフィックスを持つ変数を通じて設定されます。変数のリスト:

  • network_provider - network_provider 変数を使用して、特定のプロバイダー(nm または initscripts)を設定できます。{{ network_provider_os_default }} に設定すると、オペレーティングシステムに応じてプロバイダーが設定されます。通常は nm ですが、RHEL6 または CentOS6 システムの場合は例外があることに注意してください。
  • network_connections - 接続プロファイルは network_connections として設定され、特定のオプションを含む辞書のリストです。
  • network_allow_restart - デフォルトでは false です。NetworkManager プラグインをインストール後に読み込むには、NetworkManager の再起動が必要です。ワイヤレス接続を設定する場合、NetworkManager-wifi がインストールされていない場合、設定が完了する前に再起動する必要があります。再起動により接続が失われる可能性があるため、このロールは明示的な同意なしには再起動を許可しません。ユーザーは network_allow_restarttrue に設定することで同意できます。
  • network_state - マネージドホスト内でネットワーク状態設定が構成され、設定の形式と構文は nmstate ステート例(YAML)と一貫性がある必要があります。

変数の例

変数を設定する例:

network_provider: nm
network_connections:
  - name: eth0
    #...
network_allow_restart: true
network_provider: nm
network_state:
  interfaces:
    - name: eth0
    #...
  routes:
    config:
      #...
  dns-resolver:
    config:
      #...

network_connections オプション

network_connections 変数は、以下のオプションを含む辞書のリストです。オプションのリスト:

name(通常は必須)

name オプションは、設定する接続プロファイルを識別します。これは、プロファイルが適用されるネットワーキングインターフェースの名前ではありませんが、プロファイルとインターフェースを関連付け、同じ名前を付けることができます。デバイスごとに複数のプロファイルを持つことはできますが、各デバイスでは同時にアクティブなプロファイルは1つだけです。

  • NetworkManager の場合、name オプションは connection.id プロパティオプションに対応しています。
  • initscripts の場合、name オプションは /etc/sysconfig/network-scripts/ifcfg-$NAME の ifcfg ファイル名を決定します。

同じ接続プロファイルを複数回使用することも可能であり、プロファイルを作成し、それを別々にアクティブにすることもできます。

注意network ロールは network_connections 変数で指定されたプロファイルのみを変更します。したがって、プロファイルのポートのみを削除する場合、コントローラが指定されていなければ、コントローラプロファイルはシステムに残ります。

注意network_connections 変数で指定されていないプロファイルをシステムからすべて削除するには、名前のないエントリを追加し persistent_state: absent を指定します。これにより、残りのすべてのプロファイルが削除されます。

network_connections:
  - name: eth0  # システム上で保持/構成するプロファイル
    [...]

  - persistent_state: absent  # 他のすべてのプロファイルを削除

state

state オプションは、各接続プロファイルの実行時状態を特定します。state オプション(オプション)は、以下の値のいずれかに設定できます:

  • up - 接続プロファイルがアクティブ
  • down - 接続プロファイルが非アクティブ

次に state オプションが up に設定された場合、wait オプションを指定することも可能です(オプション):

  • wait: 0 - アクティベーションを開始しますが、デバイスが完全に接続されるまで待ちません。接続はバックグラウンドで完了します(たとえば、DHCPリースが受信された後)。
  • wait: <seconds> - デバイスがアクティブになるまでの時間を決定できます。デフォルトでは適切なタイムアウトが使用されます。このオプションは NetworkManager にのみサポートされています。

state: up は常にプロファイルを再アクティブ化し、ネットワーク構成を変更する可能性があります。したがって、state: up は常にシステムを変更します。

persistent_state

persistent_state オプションは、接続プロファイルが永続的(ディスクに保存されている)かどうかを示します。persistent_state オプションは、以下の値に設定できます:

persistent_state: present(デフォルト)

persistent_statepresent に設定されている場合、接続プロファイルが type オプションを含むと、プロファイルが作成または更新されます。接続プロファイルが不完全な場合(type オプションがない)、動作は未定義となります。加えて、present の値はネットワーク構成の変更を直接結果しません。state オプションが up に設定されていない限り、プロファイルはアクティブになります。

その他のオプション

それぞれのオプションについても詳しく記載されていますが、ここでは省略します。

接続プロファイルを設定する例:

network_connections:
  - name: Wired0
    type: ethernet
    interface_name: eth0
    ip:
      dhcp4: true

  - name: Wired0
    state: up

認証の設定例

802.1x を設定する例:

network_connections:
  - name: eth0
    type: ethernet
    ieee802_1x:
      identity: myhost
      eap: tls
      private_key: /etc/pki/tls/client.key
      private_key_password: "p@55w0rD"
      client_cert: /etc/pki/tls/client.pem
      ca_cert: /etc/pki/tls/cacert.pem
      domain_suffix_match: example.com

設定を保存し、配信する際はテストを行うことが推奨されます。トラブルシューティングのための物理的なアクセスが必要になる場合があります。詳しくは、GitHub の 貢献ガイドライン を参照してください。

その他

rpm-ostree に関する詳細は README-ostree.md をご覧ください。

インストール
ansible-galaxy install linux-system-roles.network
ライセンス
bsd-3-clause
ダウンロード
263.3k