9.2.2. ディスク暗号化設定 Playbook の実行

前提条件

手順

  1. 最初のハイパーコンバージドホストにログインします。
  2. hc-ansible-deployment ディレクトリーに移動します。

    # cd /etc/ansible/roles/gluster.ansible/playbooks/hc-ansible-deployment
  3. rootユーザーで以下のコマンドを実行すると、設定プロセスが開始されます。

    # ansible-playbook -i luks_tang_inventory.yml tasks/luks_tang_setup.yml --tags=blacklistdevices,luksencrypt,bindtang --ask-vault-pass

    ディスク暗号化の設定を開始するプロンプトが表示されたら、このファイルの vault パスワードを入力します。

検証

  • 各ホストを再起動して、復号したパスフレーズを手動で入力しなくても、ログインプロンプトに起動できることを確認します。
  • ディスク暗号化を使用するデバイスには、Red Hat Hyperconverged Infrastructure for Virtualization の設定を継続すると、/dev/mapper/luks_sdX のパスがあることに注意してください。

トラブルシューティング

  • 指定したブートデバイス /dev/sda2 は暗号化されません。

    TASK [Check if root device is encrypted] 
    fatal: [server1.example.com]: FAILED! => {"changed": false, "msg": "The given boot device /dev/sda2 is not encrypted."}

    ソリューション 「ハイパーコンバージドホストのインストール」 に記載されている手順でハイパーコンバージドホストを再インストールします。インストールプロセス中にEncrypt my data を選択し、ディスク暗号化に関するすべての指示に従うことを確認してください。

  • この結果では、no_log: true が指定されているという事実により、出力は表示されません。

    TASK [gluster.infra/roles/backend_setup : Encrypt devices using key file] 
    failed: [host1.example.com] (item=None) => {"censored": "the output has been hidden due to the fact that no_log: true was specified for this result", "changed": true}

    パスフレーズを公開しないように、この出力が切り替わりました。Encrypt devices using key fileタスクでこの出力が表示された場合、デバイスの暗号化に失敗しています。インベントリーファイルに誤ったディスクを指定している可能性があります。

    解決策: デプロイに失敗した後、Cleaning up Network-Bound Disk Encryption after a failed deploymentを参照してデプロイメントのクリーンアップします。次に、インベントリーファイルでディスク名を修正します。

  • Tang サーバーからゼロ以外のリターンコード

    TASK [gluster.infra/roles/backend_setup : Download the advertisement from tang server for IPv4] * failed: [host1.example.com] (item={url: http://tang-server.example.com}) => {"ansible_index_var": "index", "ansible_loop_var": "item", "changed": true, "cmd": "curl -sfg \"http://tang-server.example.com/adv\" -o /etc/adv0.jws", "delta": "0:02:08.703711", "end": "2020-06-10 18:18:09.853701", "index": 0, "item": {"url": "http://tang-server.example.com"}, "msg": "non-zero return code*", "rc": 7, "start": "2020-06-10 18:16:01.149990", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}

    このエラーは、提供されたFQDNが正しくないか、ホストから見つからないために、サーバーが提供されたurlにアクセスできないことを示しています。

    解決策: NBDE キーサーバーに提供される url の値を修正するか、または url 値がホストからアクセス可能であることを確認します。次に、bindtang タグを使用して Playbook を再度実行します。

    # ansible-playbook -i luks_tang_inventory.yml tasks/luks_tang_setup.yml --ask-vault-pass --tags=bindtang
  • その他のプレイブックの失敗については、Cleaning up Network-Bound Disk Encryption after a failed deploymentの手順で、デプロイメントをクリーンアップしてください。設定 Playbook を再度実行する前に、Playbook とインベントリーファイルで誤った値を確認し、すべてのサーバーへのアクセスをテストします。