問題
1 TASK [ceph : Fetching Ceph keyrings] ******************************************* 2 3 fatal: [controller01]: FAILED! => {“failed”: true, “msg”: “The conditional check ‘{{ (ceph_files_json.stdout | from_json).changed }}’ failed. The error was: No JSON object could be decoded”
原因是在刪除容器和配置文件后,kolla生成的相關volume是沒有刪除的。其還存在於/var/lib/docker/volume下。因此當再次構建kolla時,這些已經存在的volume會阻止ceph_mon的啟動,會導致上述錯誤Ceph keyring無法獲取而產生的一些錯誤。因此 刪除掉docker volume ls下的卷。再次部署就能夠成功的解決問題。
1 [root@controller ~]# docker volume ls 2 DRIVER VOLUME NAME 3 local 55b26a179933246b6b5ad08e5215f25b179d1dd13c9ca14d564d38df5217043e 4 local ceph_mon 5 local ceph_mon_config 6 local cinder 7 local elasticsearch 8 local glance 9 local haproxy_socket 10 local influxdb 11 local keystone_fernet_tokens 12 local kolla_etcd 13 local kolla_logs 14 local libvirtd 15 local magnum 16 local mariadb 17 local neutron_metadata_socket 18 local nova_compute 19 local nova_libvirt_qemu 20 local openvswitch_db 21 local rabbitmq 22 [root@controller ~]# docker volume rm ceph_mon ceph_mon_config
在此重新部署:
1 /bin/bash /usr/bin/kolla-ansible deploy -i /etc/kolla_data/deploy/multinode -t ceph