libvirtError: internal error rbd username 'cinder' specified but secret not found

来源:互联网 发布:linux 查看cpu 编辑:程序博客网 时间:2024/05/17 06:12
参考:http://www.oschina.net/translate/openstack-ceph-integration

libvirtError: internal error rbd username 'cinder' specified but secret not found

需要修改每个计算节点的nova.conf的配置文件:
rbd_secret_uuid=e6e3b958-b51f-496f-8f6d-279dcf7ae4ec

其中这个uuid必须在每个计算节点进行计算:
[root@nn1 ~]# uuidgen
91ccbe85-b1f3-45d4-a9e1-882b8bd0fc20

vi secret.xml 

<secret ephemeral='no' private='no'>
  <uuid>91ccbe85-b1f3-45d4-a9e1-882b8bd0fc20</uuid>
  <usage type='ceph'>
    <name>client.cinder secret</name>
  </usage>
</secret>


[root@nn2 ~]# virsh secret-define --file secret.xml
Secret 91ccbe85-b1f3-45d4-a9e1-882b8bd0fc20  created

[root@cc ~]# cat /etc/ceph/ceph.client.cinder.keyring
[client.cinder]
        key = AQAhFHtTIOghEhAAT83CzotqqcRRmilIN3+xKQ==


[root@nn2 ~]# virsh secret-set-value --secret 91ccbe85-b1f3-45d4-a9e1-882b8bd0fc20  --base64 AQAhFHtTIOghEhAAT83CzotqqcRRmilIN3+xKQ==
Secret value set


这样这个uuid就可以用了



脚本:
#!/bin/sh
cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
  <usage type='ceph'>
    <name>client.cinder secret</name>
  </usage>
</secret>
EOF
if [ $? -ne 0 ];then
   exit 1
fi
key=`virsh secret-define --file secret.xml | awk '{print $2}'`
if [ $? -ne 0 ];then
   exit 1
fi
virsh secret-set-value --secret $key --base64 AQAhFHtTIOghEhAAT83CzotqqcRRmilIN3+xKQ==
if [ $? -ne 0 ];then
   exit 1
fi
sed -i "s/#rbd_secret_uuid=<None>/rbd_secret_uuid=$key/g" /etc/nova/nova.conf
if [ $? -ne 0 ];then
   exit 1
fi
/etc/init.d/openstack-nova-compute restart

0 0