实例的密码修改方式

  • 创建MV时修改密码
  • 运行中的MV修改密码

创建MV时修改密码

基于cloud-init实现配置的传递给MV
在这里插入图片描述configguration:可以实现初始化密码和安装软件等等,MV端通过cloud-init传入

  • cloud-init有固定的语法的,但是要可以使用shell实现
#cloud-config
chpasswd:
   list: |
       root:123456
       ubuntu:123456
   expire: false
ssh_pwauth: true
#正规写法是这个

参考:https://cloudinit.readthedocs.io/en/latest/index.html

运行中的MV修改密码
依赖于kvm的qemu-guest-agent.service插件使用对虚拟机的命令操作

  • image模板需要安装qemu-guest-agent
  • image模板需要增加metadata信息,hw_qemu_guest_agent开启agent和os_admin_user用户名
    • 命令:glance image-update idxxxxx --property hw_qemu_guest_agent=yes
    • glance image-update idxxxxx --property os_admin_user=huaplus

后续创建的MV是可以实现密码密码修改的,但是由于之前的创建的MV就无法实现了,因为qemu-guest-agent服务起不来(网上看给实例元数据添加hw_qemu_guest_agent=yes,但是测试无效)

  • nova meta idxxxxx set hw_qemu_guest_agent=yes

KVM原理

QEMU Guest Agent是运行在虚拟机内部的一个守护程序(qemu-guest-agent.service),用它来辅助Hypervisor实现对Guest的管理

  • channel:mv的数据通道串口,对应宿主机上的unix socket文件进行通信
  • domain xml下需要添加如下数据通道配置
<channel type='unix'>
   <source mode='bind' path='/var/lib/libvirt/qemu/f16x86_64.agent'/>
   <target type='virtio' name='org.qemu.guest_agent.0'/>
</channel>
#这里target的name要使用org.qemu.guest_agent.0
  • 镜像需要安装qemu-guest-agent和开机启动

命令测试:virsh qemu-agent-command instance-00000130 --cmd ‘{“execute”:“guest-info”}’

更多推荐