Red Hat Training
A Red Hat training course is available for RHEL 8
11.18. nbde_client RHEL システムロールを使用した複数の Clevis クライアントのセットアップ
nbde_client
RHEL システムロールを使用すると、Clevis クライアント設定を含む Ansible Playbook を複数のシステムで準備および適用できます。
nbde_client
システムロールは、Tang バインディングのみをサポートします。これは、現時点では TPM2 バインディングに使用できないことを意味します。
前提条件
- 制御ノードと管理ノードを準備している
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントには、そのノードに対する
sudo
権限がある。 - この Playbook を実行する管理対象ノードまたは管理対象ノードのグループが、Ansible インベントリーファイルにリストされている。
手順
Clevis クライアントの設定を含む Playbook を準備します。ゼロから開始するか、
/usr/share/ansible/roles/rhel-system-roles.nbde_client/examples/
ディレクトリーにある Playbook のいずれかのサンプルを使用することができます。# cp /usr/share/ansible/roles/rhel-system-roles.nbde_client/examples/high_availability.yml ~/my-clevis-playbook.yml
選択したテキストエディターで Playbook を編集します。以下に例を示します。
# vi ~/my-clevis-playbook.yml
必要なパラメーターを追加します。以下の Playbook の例では、2 つの Tang サーバーのうち少なくとも 1 台が利用可能な場合に、LUKS で暗号化した 2 つのボリュームを自動的にアンロックするように Clevis クライアントを設定します。
--- - hosts: all vars: nbde_client_bindings: - device: /dev/rhel/root encryption_key_src: /etc/luks/keyfile servers: - http://server1.example.com - http://server2.example.com - device: /dev/rhel/swap encryption_key_src: /etc/luks/keyfile servers: - http://server1.example.com - http://server2.example.com roles: - rhel-system-roles.nbde_client
Playbook の構文を検証します。
# ansible-playbook ~/my-clevis-playbook.yml --syntax-check
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
終了した Playbook を適用します。
# ansible-playbook ~/my-clevis-playbook.yml
現在の nbde_client
システムロールは、動的ホスト設定プロトコル (DHCP) を使用する場合のみをサポートします。静的 IP 設定のクライアントに NBDE を使用するには、次のいずれかのアクションを実行します。
ネットワーク設定を
dracut
コマンドに渡します。次に例を示します。# dracut -fv --regenerate-all --kernel-cmdline "ip=192.0.2.10::192.0.2.1:255.255.255.0::ens3:none"
あるいは、静的ネットワーク情報を含む
.conf
ファイルを/etc/dracut.conf.d/
ディレクトリーに作成します。次に例を示します。# cat /etc/dracut.conf.d/static_ip.conf kernel_cmdline="ip=192.0.2.10::192.0.2.1:255.255.255.0::ens3:none"
次に、初期 RAM ディスクイメージを再生成します。
次のスニペットを Playbook に追加することもできます。
tasks: - name: Configure a client with a static IP address during early boot ansible.builtin.command: cmd: grubby --update-kernel=ALL --args='GRUB_CMDLINE_LINUX_DEFAULT="ip={{ <ansible_default_ipv4.address> }}::{{ <ansible_default_ipv4.gateway> }}:{{ <ansible_default_ipv4.netmask> }}::{{ <ansible_default_ipv4.alias> }}:none"'
上記のスニペットで、文字列
<ansible_default_ipv4.*>
をネットワークの IP アドレスに置き換えます (例:ip={{ 192.0.2.10 }}::{{ 192.0.2.1 }}:{{ 255.255.255.0 }}::{{ ens3 }}:none
)。
関連情報
-
パラメーターの詳細と、NBDE Client システムロールに関する追加情報は、
rhel-system-roles
パッケージをインストールし、/usr/share/doc/rhel-system-roles/nbde_client/
および/usr/share/ansible/roles/rhel-system-roles.nbde_client/
ディレクトリーを参照してください。 - Red Hat Enable Sysadmin の記事 Looking forward to Linux network configuration in the initial ramdisk (initrd)