第 13 章 使用 director Operator 更改服务帐户密码
Red Hat OpenStack Platform (RHOSP)服务和它们使用的数据库通过其身份服务(keystone)凭证进行身份验证。Identity 服务在初始 RHOSP 部署过程过程中生成这些 RHOSP 密码。您可能需要定期更新密码以进行威胁缓解或安全合规。您可以使用 director Operator (OSPdO)的原生工具在部署 RHOSP 环境后更改许多生成的密码。
13.1. 使用 director Operator 轮转 overcloud 服务帐户密码
您可以轮转与部署 Red Hat OpenStack Platform (RHOSP)环境的 director Operator (OSPdO)使用的 overcloud 服务帐户密码。
流程
创建当前
tripleo-passwords
secret 的备份:$ oc get secret tripleo-passwords -n openstack -o yaml > tripleo-passwords_backup.yaml
创建名为
tripleo-overcloud-passwords_preserve_list
的纯文本文件,以指定以下服务的密码不应轮转:parameter_defaults BarbicanSimpleCryptoKek KeystoneCredential0 KeystoneCredential1 KeystoneFernetKey0 KeystoneFernetKey1 KeystoneFernetKeys CephClientKey CephClusterFSID CephManilaClientKey CephRgwKey HeatAuthEncryptionKey MysqlClustercheckPassword MysqlMariabackupPassword PacemakerRemoteAuthkey PcsdPassword
如果有要保留密码的其他服务,您可以在此列表中添加其他服务。
创建一个密码参数文件
tripleo-overcloud-passwords.yaml
,它列出了不应修改的密码:$ oc get secret tripleo-passwords -n openstack \ -o jsonpath='{.data.tripleo-overcloud-passwords\.yaml}' \ | base64 -d | grep -f ./tripleo-overcloud-passwords_preserve_list > tripleo-overcloud-passwords.yaml
-
验证
tripleo-overcloud-passwords.yaml
文件包含您不想轮转的密码。 更新
tripleo-password
secret:$ oc create secret generic tripleo-passwords -n openstack \ --from-file=./tripleo-overcloud-passwords.yaml \ --dry-run=client -o yaml | oc apply -f -
- 创建 Ansible playbook 以使用 OpenStackConfigGenerator CRD 配置 overcloud。如需更多信息,请参阅使用 OpenStackConfigGenerator CRD 为 overcloud 配置创建 Ansible playbook。
- 应用更新的配置。如需更多信息,请参阅使用 director Operator 应用 overcloud 配置。
验证
将机密中的新 NovaPassword
与 Controller 节点上现在安装的内容进行比较。
从更新的 secret 获取密码:
$ oc get secret tripleo-passwords -n openstack -o jsonpath='{.data.tripleo-overcloud-passwords\.yaml}' | base64 -d | grep NovaPassword
输出示例:
NovaPassword: hp4xpt7t2p79ktqjjnxpqwbp6
检索在 Controller 节点上运行的 Compute 服务(nova)的密码:
访问
openstackclient
远程 shell:$ oc rsh openstackclient -n openstack
确保您位于主目录中:
$ cd
检索 Compute 服务密码:
$ ansible -i /home/cloud-admin/ctlplane-ansible-inventory Controller -b -a "grep ^connection /var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf"
输出示例:
172.22.0.120 | CHANGED | rc=0 >> connection=mysql+pymysql://nova_api:hp4xpt7t2p79ktqjjnxpqwbp6@172.17.0.10/nova_api?read_default_file=/etc/my.cnf.d/tripleo.cnf&read_default_group=tripleo connection=mysql+pymysql://nova:hp4xpt7t2p79ktqjjnxpqwbp6@172.17.0.10/nova?read_default_file=/etc/my.cnf.d/tripleo.cnf&read_default_group=tripleo