admin
不忘初心,方得始终
级别: 管理员
只看楼主 | | | 0楼 发表于:2015-11-18 22:56

Openstack中修改VM的管理员账号的密码(包括Linux root用户和Windows系统administrator用户)

   在openstack的VM使用过程中,由于有些VM在一个项目团队成员中变更过密码,后来忘记虚拟机的管理员密码。本文中将找回虚拟机系统的管理员密码做出总结。
   操作前需要对虚拟机系统磁盘做快照。
   Linux系统分成可进入单用户模式和不可进入单用户的模式。
   Linux可进入单用户模式,那么修改方法比较简单,在Linux 系统启动界面按e,进入编辑界面。在出现kernel这一行,加上single或者空格1,然后回车,进入单用户模式,输入passwd root修改系统root用户密码。
   Linux不可进入单用户模式,有些镜像做过特殊配置,基于这些镜像创建的VM在开机时候无法进入单用户模式,就需要把虚拟机的硬盘挂载到某个计算节点,通过libguestfs工具清空系统root用户密码。
   试验环境如下:Openstack Icehouse
              存储:DELL EqualLogic 挂载方式:iscsi
   Linux操作系统破解管理员root用户密码操作步骤如下:
1.启动虚拟机,登录到任意一台controller节点,确认虚拟机信息:
查看VM信息1

2.引用环境变量:
[root@controller1 ~(keystone_admin)]# more keystonerc_admin
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD="@Opens25"
export OS_AUTH_URL=http://192.168.0.20:5000/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$ '
[root@controller1 ~(keystone_admin)]# source keystonerc_admin
3.输入novalist—all-tenants查看VM的信息。  
查看VM信息2

查看VM信息3

4.通过nova show VM_UUID查看VM的信息,包括虚拟机运行的计算节点,虚拟机的实例名,虚拟机系统盘的ID。
查看磁盘信息

通过读取信息,可以确认目前虚拟机运行在computer5的计算节点上,虚拟机的实例名为instance-00001653,虚拟机系统盘(第一块盘)的ID为2dbb894d-8457-4ae8-8639-b5dc496ba23a。
5.确认虚拟机系统盘的类型。
使用cinder show命令确认磁盘类型,确认磁盘是eqlx,eqlx类型的磁盘是通过iscsi协议挂载到计算节点提供给虚拟机使用的。
6.查看虚拟机的磁盘信息
登录到computer5的计算节点,查看这个虚拟机的磁盘信息:
通过信息,可以确认磁盘的信息如下:
查看虚机磁盘信息

Targetname: iqn.2001-05.com.equallogic:0-fe83b6-5518751d4-494b0d6b274563a0-volume-2dbb894d-8457-4ae8-8639-b5dc496ba23a
Iscsi服务器地址及端口: 10.10.0.80:3260
7.挂载虚拟机磁盘前,需要先关闭虚拟机的电源,否则有可能导致磁盘损坏。
关闭虚机电源

查看关机状态

8.挂载iscsi磁盘到computer5计算节点本地。
命令如下:
iscsiadm –mode node –targetname iqn.2001-05.com.equallogic:0-fe83b6-5518751d4-494b0d6b274563a0-volume-2dbb894d-8457-4ae8-8639-b5dc496ba23a –portal 10.10.0.80:3260 --login
挂载磁盘

9.确认磁盘挂载信息。
确认磁盘挂载信息1

确认磁盘挂载信息2

确认磁盘挂载信息3
  
10.查看计算节点磁盘信息。
使用lsblk命令查询结果如下:
lsblk查看系统盘信息

从以上信息可以确认虚拟机磁盘分区是LVM类型的,分区sdi1和sdi2分区,系统根分区为sdi2。
11.    安装libguestfs-tools
使用yum install libguestfs-tools –y命令安装。
12.    清空root密码
删除文件中第一个冒号和第二个冒号间的内容,保存并且退出文件。
PS:如果使用的是cinder本地存储,需要使用virt-edit -a /var/lib/nova/instances/VM_UUID/disk /etc/shadow
清空Linux系统密码

13.    清空root密码后,需要登出iscsi设备。
iscsiadm --mode node --targetname iqn.2001-05.com.equallogic:0-fe83b6-5518751d4-494b0d6b274563a0-volume-2dbb894d-8457-4ae8-8639-b5dc496ba23a --portal 10.10.0.80:3260 --logout
退出iscsi磁盘挂载

14.    启动虚拟机,使用root用户登录,不需要输入密码。登录进VM系统后可以使用passwd root命令重新设置root用户密码。
重设Linux的root密码


Windows系统密码破解步骤:
   试验环境如下:Openstack Icehouse
              存储:DELL EqualLogic 挂载方式:iscsi
   操作步骤如下:
1.启动虚拟机,登录到任意一台controller节点,确认虚拟机信息:
查看windows系统信息

2. 引用环境变量:
[root@controller1 ~(keystone_admin)]# more keystonerc_admin
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD="@Opens25"
export OS_AUTH_URL=http://192.168.0.20:5000/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$ '
[root@controller1 ~(keystone_admin)]# source keystonerc_admin
3.输入novalist—all-tenants查看VM的信息。
查看Windows VM信息

查看windows VM的状态
  
4.通过nova show VM_UUID查看VM的信息,包括虚拟机运行的计算节点,虚拟机的实例名,虚拟机系统盘的ID。
nova show windows系统信息

通过读取信息,可以确认目前虚拟机运行在computer4的计算节点上,虚拟机的实例名为instance-00001676,虚拟机系统盘(第一块盘)的ID为4488d071-1c15-4157-95f9-3909c67c5753。
5.确认虚拟机系统盘的类型。
使用cinder show命令确认磁盘类型,确认磁盘是eqlx,eqlx类型的磁盘是通过iscsi协议挂载到计算节点提供给虚拟机使用的。
6. 查看虚拟机的磁盘信息
登录到computer4的计算节点,查看这个虚拟机的磁盘信息:
查看windows系统磁盘信息

通过信息,可以确认磁盘的信息如下:
Targetname: iqn.2001-05.com.equallogic:0-fe83b6-4688751d4-bb2b0d6b7415642f-volume-4488d071-1c15-4157-95f9-3909c67c5753
iscsi服务器地址及端口: 10.10.0.80:3260
7.挂载虚拟机磁盘前,需要先关闭虚拟机的电源,否则有可能导致磁盘损坏。
关闭windows虚拟机电源

查看windows虚拟机状态
  
8.挂载iscsi磁盘到computer4计算节点本地。
命令如下:
iscsiadm --mode node --targetname iqn.2001-05.com.equallogic:0-fe83b6-4688751d4-bb2b0d6b7415642f-volume-4488d071-1c15-4157-95f9-3909c67c5753 --portal 10.10.0.80:3260 --login
挂载iscsi到计算节点

9.确认磁盘挂载信息。
查看挂载的windows磁盘信息

查看挂载的windows磁盘信息内容

查看挂载的windows磁盘信息的内容
  
10.查看计算节点磁盘信息。
使用lsblk命令查询结果如下:
lsblk查看windows磁盘分区

从以上信息可以确认虚拟机磁盘根分区为sdd2分区。
11. yum install  libguestfs-winsupport -y
12. Windows使用cmd.exe文件替换UtilMan.exe文件(需要先安装libguestfs-winsupport软件包)
PS:如果VM使用的是cinder本地存储,那么需要使用guestfish -i /var/lib/nova/instances/VM_UUID/disk。
修改windows系统分区

使用cmd替换轻松访问文件
  
13.打开虚拟机电源,点击“轻松访问”打开命令行工具,然后输入net user administrator abcdef123…
重设windows管理员密码

14.使用新密码登录到系统,测试系统密码是否修改成功。
15.使用 guestfish命令重新修改Windows系统里面的文件。先把Utilman.exe删除,然后把Utilman.exe.bak重命名为Utilman.exe。
还原对windows之前的修改

16.卸载iscsiadm EqualLogic的磁盘。
iscsiadm -m node --target iqn.2001-05.com.equallogic:0-fe83b6-4688751d4-bb2b0d6b7415642f-volume-4488d071-1c15-4157-95f9-3909c67c5753 –logout
windows计算节点卸载iscsi磁盘

17.重启系统,再点击“轻松访问”将无法打开命令行界面。
验证windows轻松访问登录

18.确定无法打开命令行界面后,以新密码登录到Windows系统,密码修改完成。