11.6. 所有者サーバーのインストール、設定、および実行

fdo-owner-cli および fdo-owner-onboarding-server RPM パッケージをインストールして、最初のデバイスの起動時に製造サーバーによって生成されたバウチャーをシステムが受信できるようにします。すると、ランデブーサーバーはデバイスの UUID をターゲットプラットフォームまたはクラウドと照合し、デバイスがどの所有者サーバーエンドポイントを使用する必要があるかをデバイスに通知します。

前提条件

  • サーバーがデプロイされるデバイスに、ディスクを暗号化する Trusted Platform Module (TPM) デバイスが搭載されている。搭載されていない場合、RHEL for Edge デバイスを起動するときにエラーが発生します。
  • 鍵と証明書を含む device_ca_cert.pemowner_key.der、および owner_cert.pem を作成し、それらを /etc/fdo/keys ディレクトリーにコピーした。

手順

  1. このサーバーに必要な RPM をインストールします。

    # dnf install -y fdo-owner-cli fdo-owner-onboarding-server
  2. owner-onboarding-server.yml 設定ファイルを準備し、/etc/fdo/ ディレクトリーに保存します。このファイルには、コピー済みの証明書へのパスと、所有者サーバーサービスを公開する場所に関する情報を含めます。

    以下は、/usr/share/doc/fdo/owner-onboarding-server.yml で利用できる例です。URL や認証トークンなど、Service Info API への参照を見つけることができます。

    ---
    ownership_voucher_store_driver:
      Directory:
        path: /etc/fdo/stores/owner_vouchers
    session_store_driver:
      Directory:
        path: /etc/fdo/stores/owner_onboarding_sessions
    trusted_device_keys_path: /etc/fdo/keys/device_ca_cert.pem
    owner_private_key_path: /etc/fdo/keys/owner_key.der
    owner_public_key_path: /etc/fdo/keys/owner_cert.pem
    bind: "0.0.0.0:8081"
    service_info_api_url: "http://localhost:8083/device_info"
    service_info_api_authentication:
      BearerToken:
        token: Kpt5P/5flBkaiNSvDYS3cEdBQXJn2Zv9n1D50431/lo=
    owner_addresses:
      - transport: http
        addresses:
          - ip_address: 192.168.122.149
  3. Service Info API を作成して設定します。

    1. ユーザー作成、コピーまたは作成するファイル、実行するコマンド、暗号化するディスクなどのオンボーディング用の自動化情報を追加します。/usr/share/doc/fdo/serviceinfo-api-server.yml にある Service Info API 設定ファイルの例をテンプレートとして使用し、/etc/fdo/ の下に設定ファイルを作成します。

      ---
      service_info:
        initial_user:
          username: admin
          sshkeys:
          - "ssh-rsa AAAA...."
        files:
        - path: /root/resolv.conf
          source_path: /etc/resolv.conf
        commands:
        - command: touch
          args:
          - /root/test
          return_stdout: true
          return_stderr: true
        diskencryption_clevis:
        - disk_label: /dev/vda4
          binding:
            pin: tpm2
            config: "{}"
          reencrypt: true
        additional_serviceinfo: ~
      bind: "0.0.0.0:8083"
      device_specific_store_driver:
        Directory:
          path: /etc/fdo/stores/serviceinfo_api_devices
      service_info_auth_token: Kpt5P/5flBkaiNSvDYS3cEdBQXJn2Zv9n1D50431/lo=
      admin_auth_token: zJNoErq7aa0RusJ1w0tkTjdITdMCWYkndzVv7F0V42Q=
  4. systemd ユニットのステータスを確認します。

    # systemctl list-unit-files | grep fdo
    fdo-owner-onboarding-server.service        disabled        disabled
    fdo-serviceinfo-api-server.service         disabled        disabled
    1. サービスが停止して無効になっている場合は、有効にして起動します。

      # systemctl enable --now fdo-owner-onboarding-server.service
      # systemctl enable --now fdo-serviceinfo-api-server.service
      注記

      設定ファイルを変更するたびに、systemd サービスを再起動する必要があります。

  5. サーバーがデフォルト設定のポート 8083 でリッスンしていることを確認します。

    # ss -ltn
  6. このサーバーにファイアウォールが設定されている場合は、ポートを開きます。

    # firewall-cmd --add-port=8081/tcp --permanent
    # firewall-cmd --add-port=8083/tcp --permanent
    # systemctl restart firewalld