6.2. データプレーンシークレットの作成
データプレーンが動作するために必要な Secret カスタムリソース(CR)を作成する必要があります。Secret CR は、ノード間のアクセスを保護したり、ノードオペレーティングシステムを Red Hat Customer Portal に登録したり、ノードリポジトリーを有効にしたり、コンピュートノードに libvirt にアクセスできるようにしたりするために、データプレーンによって使用されます。
ノード間のセキュアなアクセスを有効にするには、2 つの SSH キーを生成し、キーごとに SSH キー Secret CR を作成する必要があります。
Ansible がデータプレーン上の RHEL ノードを管理できるようにするための SSH キー。Ansible はこのユーザーと鍵を使用してコマンドを実行します。データプレーン内の
OpenStackDataPlaneNodeSetCR ごとに SSH キーを作成できます。- コンピュートノード間のインスタンスの移行を可能にする SSH キー
前提条件
-
事前にプロビジョニングされたノードが、パスワードなしの
sudo権限を持つユーザーの$HOME/.ssh/authorized_keysファイル内の SSH 公開鍵を使用して設定されている。詳細は、RHEL の 基本システム設定 ガイドの sudo アクセスの管理 を参照してください。
手順
プロビジョニングされていないノードの場合は、Ansible の SSH 鍵ペアを作成します。
$ ssh-keygen -f <key_file_name> -N "" -t rsa -b 4096-
<key_file_name>は、鍵ペアに使用する名前に置き換えます。
-
Ansible 用の
SecretCR を作成し、クラスターに適用します。$ oc create secret generic dataplane-ansible-ssh-private-key-secret \ --save-config \ --dry-run=client \ --from-file=ssh-privatekey=<key_file_name> \ --from-file=ssh-publickey=<key_file_name>.pub \ [--from-file=authorized_keys=<key_file_name>.pub] -n openstack \ -o yaml | oc apply -f --
<key_file_name>を SSH キーペアファイルの名前と場所に置き換えます。 -
オプション: データプレーンを作成するときにプロビジョニングする必要があるベアメタルノードに対してのみ、
--from-file=authorized_keysオプションを含めます。
-
コンピュートノードを作成する場合は、移行用のシークレットを作成します。
インスタンス移行用の SSH 鍵ペアを作成します。
$ ssh-keygen -f ./nova-migration-ssh-key -t ecdsa-sha2-nistp521 -N ''移行用の
SecretCR を作成し、クラスターに適用します。$ oc create secret generic nova-migration-ssh-key \ --save-config \ --from-file=ssh-privatekey=nova-migration-ssh-key \ --from-file=ssh-publickey=nova-migration-ssh-key.pub \ -n openstack \ -o yaml | oc apply -f -
Red Hat カスタマーポータルに登録されていないノードの場合は、subscription-manager 認証情報用の
SecretCR を作成してノードを登録します。$ oc create secret generic subscription-manager \ --from-literal rhc_auth='{"login": {"username": "<subscription_manager_username>", "password": "<subscription_manager_password>"}}'-
<subscription_manager_username>を、subscription-managerに設定したユーザー名に置き換えます。 -
<subscription_manager_password>を、subscription-managerに設定したパスワードに置き換えます。
-
Red Hat レジストリーの認証情報を含む
SecretCR を作成します。$ oc create secret generic redhat-registry --from-literal edpm_container_registry_logins='{"registry.redhat.io": {"<username>": "<password>"}}'<username>と<password>を Red Hat レジストリーのユーザー名とパスワードの認証情報に置き換えます。レジストリーサービスアカウントの作成方法は、ナレッジベース記事の Creating Registry Service Accounts を参照してください。
コンピュートノードを作成する場合は、libvirt のシークレットを作成します。
ワークステーションに
secret_libvirt.yamlという名前のファイルを作成し、libvirt シークレットを定義します。apiVersion: v1 kind: Secret metadata: name: libvirt-secret namespace: openstack type: Opaque data: LibvirtPassword: <base64_password><base64_password>を、最大長 63 文字の base64 でエンコードされた文字列に置き換えます。次のコマンドを使用して、base64 でエンコードされたパスワードを生成できます。$ echo -n <password> | base64ヒントユーザー名とパスワードを base64 でエンコードする必要がない場合は、
dataフィールドの代わりにstringDataフィールドを使用してユーザー名とパスワードを設定します。
SecretCR を作成します。$ oc apply -f secret_libvirt.yaml -n openstack
SecretCR が作成されたことを確認します。$ oc describe secret dataplane-ansible-ssh-private-key-secret $ oc describe secret nova-migration-ssh-key $ oc describe secret subscription-manager $ oc describe secret redhat-registry $ oc describe secret libvirt-secret