【问题标题】:How to reset password of openstack instance using KVM and libvirt?如何使用 KVM 和 libvirt 重置 openstack 实例的密码?
【发布时间】:2014-09-11 21:42:36
【问题描述】:

我正在使用带有 KVM 和 libvirt 的 Openstack。当我尝试使用 nova api 重置实例密码时,我收到错误 501 not Implemented! 如何更改实例密码?

【问题讨论】:

    标签: passwords reset openstack kvm libvirt


    【解决方案1】:

    由于 KVM 的限制,使用 nova 'root-password' 不支持使用 KVM 管理程序重置实例的密码。 'nova root-password' 仅在运行来宾代理的 xenapi 中受支持。

    但是,您可以在基于 Libvirt 的虚拟机管理程序(KVM、QEMU、LXC)上启动时在实例中注入密码。

    对于使用 libvirt 后端的虚拟机管理程序(例如 KVM),默认情况下禁用 admin/root 密码注入。要启用它,请在 /etc/nova/nova.conf 中设置以下选项:

    [libvirt]

    inject_password=true

    启用后,Compute 将通过编辑虚拟机实例内部的 /etc/shadow 文件来修改 root 帐户的密码。

    如果满足以下条件,用户只能使用管理员密码 ssh 到实例:

    The virtual machine image is a Linux distribution
    The virtual machine has been configured to allow users to ssh as the root user. This is not the case for Ubuntu cloud images, which disallow ssh to the root account by default.
    

    【讨论】:

      【解决方案2】:

      您可以按照here 的说明使用guestfish。基本上你需要安装工具:

      apt-get update apt-get install libguestfs-tools or guestfish (depends on your distro) 然后你可以直接修改VM镜像(记得在做任何修改之前关闭VM以避免损坏问题):

      cd /var/lib/nova/instances/<your instance GUID>/
      guestfish --rw -a disk -i edit /etc/ssh/sshd_config
      

      所以你可以包含

      PasswordAuthentication no
      

      然后您可以使用您在创建过程中生成的密钥对您的虚拟机进行 ssh。或者你可以修改密码。

      guestfish --rw -a disk -i edit /etc/sudoers
      

      例如包含在文件末尾

      [USERNAME] ALL=(ALL) NOPASSWD: ALL
      

      终于要改密码了:

      guestfish --rw -a disk -i command "bash -c 'echo USERNAME:PASSWORD | chpasswd'"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-12
        • 2011-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多