【版本】
当前版本号v20241102
| 版本 | 修改说明 | 
|---|---|
| v20241102 | 修正部分链接和步骤 | 
| v20231130 | 修正一个复制网卡配置命令错误 | 
| v20221027 | 增加了新的常见问题 | 
| v20221022 | 增加了常见问题描述 | 
| v20211018 | 增加了VMWare 的步骤,并加入一些注意事项提醒 | 
| v20211016 | 加入一些提醒 | 
| v20211011 | 修改任务4.2 实例名称 | 
| v20210926 | 初始化版本 | 
任务4.1 注册 OpenStack 虚拟机
【任务目的】
- 掌握 OpenStack 虚拟机的注册和配置
 
【任务环境】
- VirtualBox
 - FinalShell
 
【任务资源】
- Openstack-Compute1 虚拟机
 - Openstack-Controller 虚拟机
 
链接:https://pan.baidu.com/s/1W_8ShmaOGQb4XwMBnmqdNw 
提取码:heis
【VMWare Workstation 任务步骤】
- 使用
VMWare Workstation的同学可以下载Openstack-Compute1.ova和Openstack-Controller.ova。 
Openstack-Compute1目录内的是 OpenStack 的计算节点虚拟机,以下简称计算节点1。Openstack-Controller目录内的是 OpenStack 的控制节点虚拟机,以下简称控制节点。
注意:下载的2台虚拟机不能够解压到同一个目录,否则会出错。
使用
VMWare Workstation的同学可以导入Openstack-Compute1.ova和Openstack-Controller.ova2台虚拟机。2台虚拟机的网卡都要设置为
仅主机模式
启动
控制节点和计算节点1。
注意:
控制节点和计算节点1都必须要开启才能保证 Openstack 正常运行
由于这2个节点时在Virtualbox上配置的,但是 VMWare WorkStation 的网卡名和 Virtualbox 的不一致,需要把网卡名相关配置进行相应修改。
使用 FinalShell 连接
控制节点。
用户名:root
密码:123456
IP:10.0.0.11
- 查看网卡名,一般是
ens33。如果不是,以下提到的ens33请替换为你的网卡名。 
ip a

- 进入网卡配置目录,把
enp0s3网卡名配置改为ens33。 
cd /etc/sysconfig/network-scripts
mv ifcfg-enp0s3 ifcfg-ens33
- 修改网卡配置
 
vi /etc/sysconfig/network-scripts/ifcfg-ens33
- 请把name 和device 的值都修改为
ens33 
- 打开 Neutron 的网桥设置。
 
vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
- 在约128行处找到以下配置,并把
enp0s3修改为ens33。 
physical_interface_mappings = provider:enp0s3
- 修改为
 
physical_interface_mappings = provider:ens33
vi输入
:set nu可以显示行号。
重启节点。
计算节点1重复步骤7-12。接下来的步骤从 【Virtualbox 任务步骤】 第7步开始。
【Virtualbox 任务步骤】
- 使用
VirtualBox的同学可以下载Openstack-Compute1.zip和Openstack-Controller.zip。并解压。 
Openstack-Compute1目录内的是 OpenStack 的计算节点虚拟机,以下简称计算节点1。Openstack-Controller目录内的是 OpenStack 的控制节点虚拟机,以下简称控制节点。
注意:下载的2台虚拟机不能够解压到同一个目录,否则会出错。
使用
VirtualBox的同学可以点击注册,分别找到以上2个目录内的vbox文件,注册2台虚拟机。

设置
控制节点
系统配置为2核处理器,3072M内存(如果内存宽裕尽量调到3G以上)。

网络配置设置为
仅主机(Host-Only)网络,混杂模式设置为全部允许。网卡 IP 配置参考任务1-步骤28
- 设置
计算节点1 
- 系统配置为1核处理器,1024M内存。
 - 网络配置设置为
仅主机(Host-Only)网络,混杂模式设置为全部允许。网卡 IP 配置参考任务1-步骤28
 
- 启动
控制节点,使用 FinalShell 连接。 
用户名:root
密码:123456
IP:10.0.0.11
- 启动
计算节点1,使用 FinalShell 连接。 
用户名:root
密码:123456
IP:10.0.0.31
注意:
控制节点和计算节点1都必须要开启才能保证 Openstack 正常运行
- 导入的2台虚拟机已经预装了 OpenStack。打开系统浏览器,访问 OpenStack 的 Web 界面http://10.0.0.11/dashboard/auth/login/,使用以下账户登录。
 
域(Domain):default
用户名:admin
密码:ADMIN_PASS

- 查看实例列表,可以看到实例
inst3,实例 inst3 是一个预装的 Cirros 系统的虚拟机,它的IP地址为10.0.0.104。启动实例inst3。
 
- 点击实例名称,进入
控制台可以查看此实例的启动进度

 
在 FinalShell 使用
root用户登录控制节点,以下命令如无特别说明,都在控制节点执行。查看
控制节点的主机名(hostname)。
hostname
- 正常应该返回
 
opstk-ctrl
- 在
控制节点输入命令,直接使用 SSH 连接 OpenStack 的虚拟机实例inst3。 
ssh cirros@10.0.0.104
如果需要输入密码,输入gocubsgo
- 登录
inst3实例以后,查看主机名。 
hostname
- 正常应该返回
 
inst3
- 退出
inst3。 
exit
- 在浏览器关闭实例
inst3。
 
任务4.2 在浏览器界面创建新的虚拟机
【任务目的】
- 掌握 OpenStack 浏览器界面创建新的虚拟机
 
【任务环境】
- VirtualBox
 - FinalShell
 
【任务资源】
- Openstack-Compute1 虚拟机
 - Openstack-Controller 虚拟机
 
【任务步骤】
打开系统浏览器,访问 OpenStack 的 Web 界面http://10.0.0.11/dashboard/auth/login/。点击
启动实例按钮。
Instance Name(实例名)输入
inst4-你学号后3位(注意替换你的个人学号),可用区域选择nova。
源选择
cirros。

flavor 选择虚拟机的配置。这里选择
m1.nano。
网络选择
net1。该网络预先配置好了网段,并使用DHCP给新虚拟机分配IP。
安全组选择
default。该安全组开放了ICMP协议和22端口。
密钥对选择
key1。选择该密钥对,可以使得我们 SSH 免密登录虚拟机。
启动实例。

参考任务4.1,从
控制节点使用ssh命令连接新的虚拟机实例。并在新的实例执行以下命令查看返回结果。
- 查看主机名
 
hostname
- 查看IP
 
ip a
- 分别使用 ping 命令,测试是否连通
控制节点1(10.0.0.11) 和计算节点1(10.0.0.31) 
ping 10.0.0.11
ping 10.0.0.31
正常连通会返回类似以下报文,按ctrl+c可以中断。
64 bytes from 10.0.0.11: seq=0 ttl=64 time=5.854 ms
任务4.3 使用命令创建新的虚拟机
【任务目的】
- 掌握 OpenStack 使用命令创建新的虚拟机
 
【任务环境】
- VirtualBox
 - FinalShell
 
【任务资源】
- Openstack-Compute1 虚拟机
 - Openstack-Controller 虚拟机
 
链接:https://pan.baidu.com/s/1W_8ShmaOGQb4XwMBnmqdNw 
提取码:heis
【任务步骤】
- FinalShell 使用 root 用户连接
控制节点。以下命令若无特别说明,均在控制节点执行。 
用户名:root
密码:123456
IP:10.0.0.11
- 使用命令创建一个新的 OpenStack 虚拟机实例。注意替换你的个人学号。
 
source /etc/keystone/admin-openrc
openstack server create --flavor m1.nano --image cirros --nic net-id=net1 --security-group default --key-name key1 inst5-你的学号后3位
openstack server create命令用于创建 OpenStack 虚拟机实例。以下为命令选项说明:
–flavor 虚拟机配置 –image 系统镜像名称 –nic net-id=网络名称 –security-group 安全组名称 –key-name 安全密钥对名称 虚拟机实例名称
- 正常会返回类似以下表格:
 
+--------------------------------------+-------------------------------------------+
| Field                                | Value                                     |
+--------------------------------------+-------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                    |
| OS-EXT-AZ:availability_zone          |                                           |
| OS-EXT-SRV-ATTR:host                 | None                                      |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | None                                      |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000005                         |
| OS-EXT-STS:power_state               | 0                                         |
| OS-EXT-STS:task_state                | None                                      |
| OS-EXT-STS:vm_state                  | building                                  |
| OS-SRV-USG:launched_at               | None                                      |
| OS-SRV-USG:terminated_at             | None                                      |
| accessIPv4                           |                                           |
| accessIPv6                           |                                           |
| addresses                            |                                           |
| adminPass                            | HMZiG2VT7EzV                              |
| config_drive                         |                                           |
| created                              | 2021-09-26T17:17:04Z                      |
| flavor                               | m1.nano (0)                               |
| hostId                               |                                           |
| id                                   | 264743cc-595b-4949-ac25-db77216bb8a6      |
| image                                | cirros (12272360-e62a-4ace-               |
|                                      | ba50-d87892e3c657)                        |
| key_name                             | key1                                      |
| name                                 | inst5                                     |
| os-extended-volumes:volumes_attached | []                                        |
| progress                             | 0                                         |
| project_id                           | 5365e230cc684e63af81598c6eedd6da          |
| properties                           |                                           |
| security_groups                      | [{u'name': u'default'}]                   |
| status                               | BUILD                                     |
| updated                              | 2021-09-26T17:17:04Z                      |
| user_id                              | 1e01bff9deaa414084efae2bb3156e62          |
+--------------------------------------+-------------------------------------------+
- 执行以下命令,查看全部实例。
 
source /etc/keystone/admin-openrc
openstack server list
- 执行以下命令,启动你刚才创建的实例。注意替换你的个人学号。
 
openstack server start inst5-你的学号后3位
- 查看实例的相关信息。注意替换你的个人学号。
 
openstack server show inst5-你的学号后3位
- 使用openstack 命令 SSH 连接新实例。
 
openstack server ssh inst5 --private --login cirros
- 在新的实例执行以下命令查看返回结果。
 
- 查看主机名
 
hostname
- 查看IP
 
ip a
- 分别使用 ping 命令,测试是否连通
控制节点1(10.0.0.11) 和计算节点1(10.0.0.31) 
ping 10.0.0.11
ping 10.0.0.31
正常连通会返回类似以下报文,按ctrl+c可以中断。
64 bytes from 10.0.0.11: seq=0 ttl=64 time=5.854 ms
- 使用命令关闭实例。注意替换你的个人学号。
 
openstack server stop inst5-你的学号后3位
- 使用命令查看所有实例状态和网络。
 
openstack server list -c Name -c Status -c Networks
【常用命令】
1. openstack server 操作虚拟机命令。
- (1)查看所有虚拟机信息
 
openstack server list
- (2)添加
--help选项可以命令的使用方法 
openstack server list --help
- (3)启动和停止虚拟机
 
#启动
openstack server start 虚拟机名称或ID
#停止
openstack server stop 虚拟机名称或ID
- (4)使用私有IP 进行 SSH 连接到虚拟机。
--private选项表示私有IP连接。--public选项表示使用公网IP连接。 
 openstack server ssh 虚拟机名称或ID --login 登录用户名 --private
- (5)查看虚拟机详细信息。
 
openstack server show 虚拟机名称或ID
- (6)删除某台虚拟机。
 
openstack server delete 虚拟机名称或ID
【常见问题】
1. 无法访问OpenStack 的 Web 界面http://10.0.0.11/dashboard/auth/login/。
答:尝试在控制节点重启一下 httpd 服务。
- (1)重启 httpd。
 
systemctl restart httpd
- (2)查看 httpd 服务状态是否为 actived
 
systemctl status httpd
2. 启动或操作 Openstack 虚拟机提示 “More than one server exists with the name XXXX”
答:这是因为重复创建了相同名称的虚拟机,导致在指定虚拟机名称的时候出现歧义。可以使用 ID 替代名称来操作 Openstack的虚拟机。
- (1)查看所有虚拟机ID
 
openstack server list
- 正常返回类似以下消息
 
+--------------------------------------+-------+---------+-----------------+
| ID                                   | Name  | Status  | Networks        |
+--------------------------------------+-------+---------+-----------------+
| 264743cc-595b-4949-ac25-db77216bb8a6 | inst5 | SHUTOFF | net1=10.0.0.106 |
| 54f83092-221d-4947-81e2-df47c24512c5 | inst5  | SHUTOFF | net1=10.0.0.105 |
| 05854ac9-c060-494c-93be-d4685e52b4c9 | inst3 | SHUTOFF | net1=10.0.0.104 |
+--------------------------------------+-------+---------+-----------------+
- (2)使用 ID 启动虚拟机(其他使用ID来操作的命令类似)
 
openstack server start 54f83092-221d-4947-81e2-df47c24512c5
3. 执行openstack命令提示 Missing parameter(s),类似以下消息。
Missing parameter(s): 
Set a username with --os-username, OS_USERNAME, or auth.username
Set an authentication URL, with --os-auth-url, OS_AUTH_URL or auth.auth_url
Set a scope, such as a project or domain, set a project scope with --os-project-name, OS_PROJECT_NAME or auth.project_name, set a domain scope with --os-domain-name, OS_DOMAIN_NAME or auth.domain_name
答:这是因为没有执行脚本加入 openstack 执行的相关环境变量。执行以下语句即可。
source /etc/keystone/admin-openrc
4. OpenStack 上虚拟机无法正常启动,提示not syncing: I0-APIC + timer doesn't work的错误。

答: 解决方法一:通过修改 cirros 虚拟机的参数禁用 APIC 检查
- (1)在
控制节点上查看虚拟机的 ID 和状态,记住你虚拟机的ID。 
source /etc/keystone/admin-openrc 
openstack server list --all
- 正常可以查看到类似以下返回内容
 
+--------------------------------------+---------+---------+-------------------+
| ID                                   | Name    | Status  | Networks          |
+--------------------------------------+---------+---------+-------------------+
| 110f6d54-0ce6-4806-9cc1-841ec60d5610 | ins999  | SHUTOFF | net999=10.0.0.102 |
+--------------------------------------+---------+---------+-------------------+
- (2)在
控制节点上关闭 OpenStack 的虚拟机 
openstack server stop 虚拟机名称
- (3)在
计算节点上编辑虚拟机配置文件 
cd /var/lib/nova/instances/你的虚拟机ID
vi libvirt.xml
- (4)找到以下内容,把其中内容进行注释。
 - 找到以下这段配置内容
 
  <features>
    <acpi/>
    <apic/>
  </features>
- 注释掉
<acpi/>和<apic/>标签 
  <features>
    <!--
	<acpi/>
    <apic/>
	-->
  </features>
- (5)保存并退出编辑。
exit命令可以退出virsh客户端。 
exit
- (6)在
控制节点上启动虚拟机 
openstack server start 虚拟机名称
