nova resuce 配置

本文以 Ubuntu16.04+Devstack Queens 版本 all-in-one 环境作为示例

环境准备

安装依赖包

  • 由于镜像打包的问题,使用 pro4 上的镜像启动的 Ubuntu 虚拟机缺少 python-libguestfs(好像更名了, python-guestfs 也是它) 和 libguestfs-tools 这两个包,所以需要手动运行下面的命令进行安装,否则在使用 nova rescue 命令进行密码注入时会抛出异常
1
sudo apt install python-libguestfs libguestfs-tools

修改权限

  • 由于权限问题,我们使用的 stack 用户无法读取 /boot/ 目录下的文件,所以需要使用下面的命令修改文件权限,详情可参考 http://libguestfs.org/guestfs-faq.1.html
1
sudo chmod 0644 /boot/vmlinuz*

启用密码注入

  • 最后,要想启用 nova rescue 的密码注入功能,还需要修改 nova 的配置文件, 需要修改 /etc/nova/nova-cpu.conf(使用 DevStack 搭建的 all-in-one 环境是 nova-cpu.conf 文件,一般的多节点环境直接修改 nova.conf 文件即可) ,在 [libvirt] 一栏下加入 inject_partition = -1inject_password = True 两项配置,具体配置如下所示,另外具体配置说明参考详见 https://docs.openstack.org/nova/queens/configuration/config.html
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
……

[libvirt]
live_migration_uri = qemu+ssh://stack@%s/system
cpu_mode = none
virt_type = qemu
inject_partition = -1
inject_password = True

……

重启相关服务

  • 做完上述配置后,最好重启 Ubuntu 虚拟机来重新启动所有的 OpenStack 相关服务,因为我发现好像单独使用 sudo systemctl restart devstack@n-cpu 这样的命令进行服务的重启时,有些服务好像并没有被完全重新加载,完成 Ubuntu 虚拟机的重启后,需要使用如下命令重新手动为 br-ex 网卡分配 IP
1
sudo ifconfig br-ex 172.24.4.1/24 up

密码注入测试

  • 重启完成后,这时再使用 nova rescue --image centos7_4 --password 123qwe centos 命令对某一实例进行操作,就能进入 rescue 模式同时将密码注入到实例中,同理,使用 nova boot 命令时加上 –admin-pass 参数以及使用 nova rebuild 命令时加上 –rebuild-password 参数也能进行密码注入
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
stack@ubuntu16:~$ nova list
+--------------------------------------+---------+--------+------------+-------------+-------------------------------+
| ID                                   | Name    | Status | Task State | Power State | Networks                      |
+--------------------------------------+---------+--------+------------+-------------+-------------------------------+
| 7c8c5d3f-a925-42e1-b748-b629605ed1f4 | centos  | ACTIVE | -          | Running     | sub01=125.0.0.12, 172.24.4.11 |
| 8bb642a0-f36f-4cbc-a615-3d9a0163004f | cirros  | ACTIVE | -          | Running     | sub01=125.0.0.5, 172.24.4.3   |
| db81950f-eba6-4d2b-9a07-f60348cdc63b | cirros1 | ACTIVE | -          | Running     | sub01=125.0.0.13, 172.24.4.13 |
| 707a996c-3b2b-4bba-bbb4-47060c1c149e | ubuntu  | ACTIVE | -          | Running     | sub01=125.0.0.25, 172.24.4.33 |
+--------------------------------------+---------+--------+------------+-------------+-------------------------------+
stack@ubuntu16:~$ nova rescue --image centos7_4 --password 123qwe centos
+-----------+--------+
| Property  | Value  |
+-----------+--------+
| adminPass | 123qwe |
+-----------+--------+
stack@ubuntu16:~$ nova list
+--------------------------------------+---------+--------+------------+-------------+-------------------------------+
| ID                                   | Name    | Status | Task State | Power State | Networks                      |
+--------------------------------------+---------+--------+------------+-------------+-------------------------------+
| 7c8c5d3f-a925-42e1-b748-b629605ed1f4 | centos  | RESCUE | -          | Running     | sub01=125.0.0.12, 172.24.4.11 |
| 8bb642a0-f36f-4cbc-a615-3d9a0163004f | cirros  | ACTIVE | -          | Running     | sub01=125.0.0.5, 172.24.4.3   |
| db81950f-eba6-4d2b-9a07-f60348cdc63b | cirros1 | ACTIVE | -          | Running     | sub01=125.0.0.13, 172.24.4.13 |
| 707a996c-3b2b-4bba-bbb4-47060c1c149e | ubuntu  | ACTIVE | -          | Running     | sub01=125.0.0.25, 172.24.4.33 |
+--------------------------------------+---------+--------+------------+-------------+-------------------------------+
stack@ubuntu16:~$ ssh root@172.24.4.11
root@172.24.4.11's password: 
Last login: Wed Aug  8 11:28:45 2018 from 172.24.4.1
[root@centos ~]#