現狀 實例可以創建,可以使用vnc,可以ssh,但是就是密碼要使用默認tima123,要修改密碼必須進入虛擬機。實際場景中如果用戶將密碼修改后忘記,需要重置密碼則我們作為管理員也沒有辦法。這在實際需求中是不可以接受的。
目標 在創建的時候有密碼修改功能,並且實例創建后能重置密碼。
辦法 1.在openstack集群的計算節點的/etc/nova/nova.conf配置文件中,有配置:
#libvirt_inject_password=false libvirt_inject_password=true
將原來的false改為true,記住,所有的計算節點都需要修改.
2. 重啟所有計算節點的nova-compute,重新創建一台虛擬機,並且做修改密碼操作,查看日志:
<0>Oct 14 08:05:23 node-12 驢<182>nova-nova.virt.libvirt.driver INFO: Injecting key into image 36306baa-8ca4-4b8f-adfd-917c570b0c53 <0>Oct 14 08:05:23 node-12 驢<180>nova-nova.virt.disk.api WARNING: Ignoring error injecting data into image (Error mounting /var/lib/nova/instances/8e100dca-1e70-4012-8cb1-f175d7ff6291/disk with libguesfs (command failed: LC_ALL=C '/usr/libexec/qemu-kvm' -nographic -help errno: File exists If qemu is located on a non-standard path, try setting the LIBGUESTFS_QEMU environment variable. There may also be errors printed above.))
可以看到這里提示相關LC_ALL=C '/usr/libexec/qemu-kvm'執行出錯。 實際上我們的計算節點的qemu-kvm是在/usr/bin/qemu-kvm這個路徑,設置LIBGUESTFS_QEMU
export LIBGUESTFS_QEMU='/usr/bin/qemu-kvm'
在次重啟nova-compute,在次重新創建實例。 可以看到新創建的實例已經能使用我們設置的密碼的登錄了,而不用使用tima123這個默認密碼。