7.2. データプレーンシークレットの作成
データプレーンを動作させるには、いくつかの Secret カスタムリソース (CR) が必要です。Secret CR は、データプレーンノードによって次の機能に使用されます。
ノード間のセキュアなアクセスを可能にする。
-
Ansible がデータプレーン上の RHEL ノードを管理できるようにするには、SSH 鍵を生成し、鍵ごとに SSH 鍵の
SecretCR を作成する必要があります。Ansible はこのユーザーと鍵を使用してコマンドを実行します。データプレーン内のOpenStackDataPlaneNodeSetCR ごとに SSH キーを作成できます。 -
Compute ノード間でインスタンスを移行できるようにするには、SSH 鍵を生成し、鍵ごとに SSH 鍵の
SecretCR を作成する必要があります。
-
Ansible がデータプレーン上の RHEL ノードを管理できるようにするには、SSH 鍵を生成し、鍵ごとに SSH 鍵の
- Red Hat カスタマーポータルに登録されていないノードのオペレーティングシステムを登録する。
- ノードのリポジトリーを有効する。
- コンピュートノードに libvirt へのアクセスを付与する。
前提条件
-
事前にプロビジョニングされたノードが、パスワードなしの
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