OpenStack Linux 虚拟机密码修改
- OpenStack 版本: Juno
- Hypervisor: KVM/QEMU
0x00 inject password 方式
inject-password默认是被禁用的, 需要修改计算节点的配置文件nova.conf
:
# Inject the admin password at boot time, without an agent.
# (boolean value)
# libvirt_inject_password=false
libvirt_inject_password=true
修改完nova.conf
后, 重启nova服务。 此时在Dashboard上还是无法看到修改虚拟机密码的功能,需要修改/usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py
来启用:
# The OPENSTACK_HYPERVISOR_FEATURES settings can be used to enable optional
# services provided by hypervisors.
OPENSTACK_HYPERVISOR_FEATURES = {
'can_set_mount_point': False,
'can_set_password': True,
}
重启httpd服务后,登录Dashboard,可以看到修改虚拟机密码的功能已被启用。
0x01 cloud-init 方式
此方法适用于已安装了cloud-init的虚拟机镜像,如cirros、ubuntu cloud image,并且需要metadata服务正常运行。若自制镜像想通过此方法进行修改,需要安装cloud-init。
#cloud-config
chpasswd:
list: |
user1:password1
user2:password2
user3:password3
expire: False
将user和password替换成需要的用户名和密码。注意user和password和中间的冒号之间没有空格。
dashboard:
CLI:
将cloud config代码片段保存为文本文件如cloud-config
。通过以下命令创建虚拟机并修改密码:
nova boot --image=image-id --nic net-id=net-id --flavor=flavor-id --user-data=cloud-config.txt instance-name
通过cloud-init除了能修改虚拟机密码,还能注入ssh key:
#cloud-config
users:
- name: root
ssh-authorized-keys:
- ssh-rsa public-key