5.2. 创建数据平面 secret
data plane 需要几个 Secret 自定义资源(CR)才能运行。data plane 节点使用 Secret CR 来实现以下功能:
启用节点间的安全访问:
-
您必须生成 SSH 密钥,并为每个密钥创建一个 SSH 密钥
SecretCR,以便 Ansible 管理数据平面上的 RHEL 节点。Ansible 使用这个用户和密钥执行命令。您可以为数据平面中的每个OpenStackDataPlaneNodeSetCR 创建 SSH 密钥。 -
您必须生成 SSH 密钥,并为每个密钥创建一个 SSH 密钥
SecretCR,以便在 Compute 节点间迁移实例。
-
您必须生成 SSH 密钥,并为每个密钥创建一个 SSH 密钥
- 要注册没有注册到红帽客户门户网站的节点的操作系统。
- 为节点启用存储库。
- 为 Compute 节点提供对 libvirt 的访问权限。
先决条件
-
预置备的节点在
$HOME/.ssh/authorized_keys文件中为具有免密码sudo特权的用户配置 SSH 公钥。如需更多信息,请参阅 RHEL 配置基本系统设置指南中的 配置 保留的用户和组群 ID。
流程
对于未置备的节点,为 Ansible 创建 SSH 密钥对:
ssh-keygen -f <key_file_name> -N "" -t rsa -b 4096
$ ssh-keygen -f <key_file_name> -N "" -t rsa -b 4096Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<key_file_name> 替换为用于密钥对的名称。
-
将
为 Ansible 创建
SecretCR,并将其应用到集群:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<key_file_name> 替换为 SSH 密钥对文件的名称和位置。 -
可选:只包括创建
数据平面时必须置备的裸机节点的--from-file=authorized_keys选项。
-
将
如果要创建 Compute 节点,请为迁移创建一个 secret。
为实例迁移创建 SSH 密钥对:
ssh-keygen -f ./nova-migration-ssh-key -t ecdsa-sha2-nistp521 -N ''
$ ssh-keygen -f ./nova-migration-ssh-key -t ecdsa-sha2-nistp521 -N ''Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为迁移创建
SecretCR,并将其应用到集群:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
对于还没有注册到红帽客户门户网站的节点,为 subscription-manager 凭证创建
SecretCR 以注册节点:oc create secret generic subscription-manager \ --from-literal rhc_auth='{"login": {"username": "<subscription_manager_username>", "password": "<subscription_manager_password>"}}'$ oc create secret generic subscription-manager \ --from-literal rhc_auth='{"login": {"username": "<subscription_manager_username>", "password": "<subscription_manager_password>"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<subscription_manager_username> 替换为您为subscription-manager设置的用户名。 -
将
<subscription_manager_password> 替换为您为subscription-manager设置的密码。
-
将
创建包含红帽 registry 凭证的
SecretCR:oc create secret generic redhat-registry --from-literal edpm_container_registry_logins='{"registry.redhat.io": {"<username>": "<password>"}}'$ oc create secret generic redhat-registry --from-literal edpm_container_registry_logins='{"registry.redhat.io": {"<username>": "<password>"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<username> 和 <password> 替换为您的 Red Hat registry 用户名和密码凭证。有关如何创建 registry 服务帐户的详情,请参考知识库文章 创建 Registry 服务账户。
如果要创建 Compute 节点,请为 libvirt 创建一个 secret。
在工作站上创建一个名为
secret_libvirt.yaml的文件,以定义 libvirt secret:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<base64_password> 替换为 base64 编码的字符串,其最大长度为 63 个字符。您可以使用以下命令生成 base64 编码的密码:echo -n <password> | base64
$ echo -n <password> | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示如果您不想对用户名和密码进行 base64encode,您可以使用
stringData字段而不是data字段来设置用户名和密码。
创建
SecretCR:oc apply -f secret_libvirt.yaml -n openstack
$ oc apply -f secret_libvirt.yaml -n openstackCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
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
$ 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-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow