10.2. 创建数据平面 secret
您必须创建 data plane 需要的 Secret 自定义资源(CR)才能操作。data plane 节点使用 Secret CR 来保护节点间的访问,将节点操作系统注册到红帽客户门户网站,以启用节点存储库,并提供 Compute 节点有权访问 libvirt。
要在节点间启用安全访问,您必须生成两个 SSH 密钥,并为每个密钥创建一个 SSH 密钥 Secret CR:
启用 Ansible 管理数据平面上的 RHEL 节点的 SSH 密钥。Ansible 使用这个用户和密钥执行命令。您可以为数据平面中的每个
OpenStackDataPlaneNodeSetCR 创建 SSH 密钥。- 启用在 Compute 节点之间实例迁移的 SSH 密钥。
先决条件
-
预置备的节点在
$HOME/.ssh/authorized_keys文件中为具有免密码sudo特权的用户配置 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选项。
-
将
如果要创建 Compute 节点,请为迁移创建一个 secret。
为实例迁移创建 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 -
对于还没有注册到红帽客户门户网站的节点,为 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设置的密码。
-
将
创建包含红帽 registry 凭证的
SecretCR:$ oc create secret generic redhat-registry --from-literal edpm_container_registry_logins='{"registry.redhat.io": {"<username>": "<password>"}}'将
<username> 和 <password> 替换为您的 Red Hat registry 用户名和密码凭证。有关如何创建 registry 服务帐户的详情,请参考知识库文章 创建 Registry 服务账户。
如果要创建 Compute 节点,请为 libvirt 创建一个 secret。
在工作站上创建一个名为
secret_libvirt.yaml的文件,以定义 libvirt secret:apiVersion: v1 kind: Secret metadata: name: libvirt-secret namespace: openstack type: Opaque data: LibvirtPassword: <base64_password>将
<base64_password> 替换为 base64 编码的字符串,其最大长度为 63 个字符。您可以使用以下命令生成 base64 编码的密码:$ echo -n <password> | base64提示如果您不想对用户名和密码进行 base64encode,您可以使用
stringData字段而不是data字段来设置用户名和密码。
创建
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