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界面会有两个创建实例的按钮...