背景
ps:在本文中,假設我係統的hostname爲node1。
使用ceph-deploy命令搭建Ceph集羣,執行ceph new node1時,出現如下錯誤:
[node1][INFO ] Running command: /bin/ip addr show
[node1][DEBUG ] IP addresses found: ['192.168.56.16', '172.17.0.1', '10.0.2.15']
[ceph_deploy.new][DEBUG ] Resolving host node1
[ceph_deploy][ERROR ] UnableToResolveError: Unable to resolve host: node1
調用該命令之前,已經設置了ssh免密碼登錄,並且都可以ping通和免密碼登錄到node1的。
原因
Ubuntu有一個讓人頭痛的特性,就是在/etc/hosts配置文件中,讓hostname使用了它的迴環loopback地址。這個特性使得很多服務無法檢測到真正的地址,這裏,ceph-deploy中,ceph_deploy.util.get_nonlocal_ip獲取到的是127網段的地址,然後就報錯不能解析hostname了。
解決方法
在/etc/hosts中,把迴環地址對應的hostname給刪除掉。再添加一行真正的ip地址和hostname的對應關係,即可。