linux-system-roles.network
linux-system-roles/network
概要
network
ロールは、ターゲットマシンのネットワークを設定するためのものです。
このロールは、以下のような設定が可能です:
- Ethernet インターフェース
- ブリッジインターフェース
- ボンディングインターフェース
- VLAN インターフェース
- MacVLAN インターフェース
- InfiniBand インターフェース
- ワイヤレス(WiFi)インターフェース
- IP 設定
- 802.1x 認証
はじめに
network
ロールは、nm
と initscripts
の2つのプロバイダーをサポートします。デフォルトでは RHEL7 以降は nm
が使用され、RHEL6 は initscripts
です。initscripts
プロバイダーは、RHEL8 で非推奨となった network-scripts
パッケージが必要です。プロバイダーは network_provider
変数を通じてホストごとに設定可能です。明示的な設定がない場合、ディストリビューションに基づいて自動的に検出されます。ただし、nm
や initscripts
は特定のディストリビューションに依存しません。
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_restart
をtrue
に設定することで同意できます。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_state
が present
に設定されている場合、接続プロファイルが 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 をご覧ください。