1.cloud-init方式
該種方式需要虛擬機鏡像安裝cloud-init,將重置密碼腳本注入到虛擬機中。
nova boot –image=image-id –nic net-id=net-id –flavor=flavor-id –user-data=cloud-config.txt instance-name 或者 openstack server create --flavor flavor-id --user-data ./cloud-config.txt --image image-id --nic net-id=net-id instance-name
其中cloud-config.txt的內容如下:
#cloud-config
chpasswd:
list: |
root:123456
expire: False
2. inject方式
編輯計算節點/etc/nova/nova.conf,配置如下參數:
inject_password=true
inject_partition = -1
計算節點重啟nova服務器
systemctl restart libvirtd.service openstack-nova-compute.service
編輯控制節點/etc/openstack-dashboard/local_settings,修改如下配置參數:
OPENSTACK_HYPERVISOR_FEATURES = {
...
'can_set_password': True,
}
控制節點重啟httpd服務
systemctl restart httpd memcached
進入dashboard界面,點擊啟動實例,如下圖所示。


注意:新版openstack中dashboard界面已經修改,無法看到上述設置虛擬機密碼欄目,需要切換到老版界面,同樣編輯上述配置文件,修改如下配置參數:
LAUNCH_INSTANCE_LEGACY_ENABLED = True # 老的創建雲主機表單啟動工作流實例
LAUNCH_INSTANCE_NG_ENABLED = True # 新的創建雲主機表單啟動工作流實例
注:如果要使用老版本的創建雲主機表單啟動工作流實例,那么最好設置LAUNCH_INSTANCE_NG_ENABLED = False和LAUNCH_INSTANCE_NG_ENABLED = True ,要不dashboard界面會有兩個創建實例的按鈕...
作者:Dexter_Wang 工作崗位:某互聯網公司資深雲計算與存儲工程師 聯系郵箱:993852246@qq.com