Part 4 - 云操作系统的应用

2021-09-26
9分钟阅读时长

【版本】

当前版本号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 任务步骤】

  1. 使用VMWare Workstation的同学可以下载Openstack-Compute1.ovaOpenstack-Controller.ova
  • Openstack-Compute1目录内的是 OpenStack 的计算节点虚拟机,以下简称计算节点1
  • Openstack-Controller目录内的是 OpenStack 的控制节点虚拟机,以下简称控制节点

注意:下载的2台虚拟机不能够解压到同一个目录,否则会出错。

  1. 使用VMWare Workstation的同学可以导入Openstack-Compute1.ovaOpenstack-Controller.ova2台虚拟机。

  2. 2台虚拟机的网卡都要设置为仅主机模式

  3. 启动控制节点计算节点1

注意:控制节点计算节点1都必须要开启才能保证 Openstack 正常运行

  1. 由于这2个节点时在Virtualbox上配置的,但是 VMWare WorkStation 的网卡名和 Virtualbox 的不一致,需要把网卡名相关配置进行相应修改。

  2. 使用 FinalShell 连接控制节点

用户名:root
密码:123456
IP:10.0.0.11
  1. 查看网卡名,一般是ens33。如果不是,以下提到的ens33请替换为你的网卡名。
ip a

  1. 进入网卡配置目录,把enp0s3网卡名配置改为ens33
cd /etc/sysconfig/network-scripts
mv ifcfg-enp0s3 ifcfg-ens33
  1. 修改网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
  • 请把name 和device 的值都修改为ens33
  1. 打开 Neutron 的网桥设置。
vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
  1. 在约128行处找到以下配置,并把enp0s3修改为ens33
physical_interface_mappings = provider:enp0s3
  • 修改为
physical_interface_mappings = provider:ens33

vi输入:set nu 可以显示行号。

  1. 重启节点。

  2. 计算节点1重复步骤7-12。

  3. 接下来的步骤从 【Virtualbox 任务步骤】 第7步开始。

【Virtualbox 任务步骤】

  1. 使用VirtualBox的同学可以下载Openstack-Compute1.zipOpenstack-Controller.zip。并解压。
  • Openstack-Compute1目录内的是 OpenStack 的计算节点虚拟机,以下简称计算节点1
  • Openstack-Controller目录内的是 OpenStack 的控制节点虚拟机,以下简称控制节点

注意:下载的2台虚拟机不能够解压到同一个目录,否则会出错。

  1. 使用VirtualBox的同学可以点击注册,分别找到以上2个目录内的vbox文件,注册2台虚拟机。

  2. 设置控制节点

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

  • 网络配置设置为仅主机(Host-Only)网络,混杂模式设置为全部允许。网卡 IP 配置参考任务1-步骤28

  1. 设置计算节点1
  • 系统配置为1核处理器,1024M内存。
  • 网络配置设置为仅主机(Host-Only)网络,混杂模式设置为全部允许。网卡 IP 配置参考任务1-步骤28
  1. 启动控制节点,使用 FinalShell 连接。
用户名:root
密码:123456
IP:10.0.0.11
  1. 启动计算节点1,使用 FinalShell 连接。
用户名:root
密码:123456
IP:10.0.0.31

注意:控制节点计算节点1都必须要开启才能保证 Openstack 正常运行

  1. 导入的2台虚拟机已经预装了 OpenStack。打开系统浏览器,访问 OpenStack 的 Web 界面http://10.0.0.11/dashboard/auth/login/,使用以下账户登录。
域(Domain):default
用户名:admin
密码:ADMIN_PASS

  1. 查看实例列表,可以看到实例inst3,实例 inst3 是一个预装的 Cirros 系统的虚拟机,它的IP地址为10.0.0.104。启动实例 inst3
  • 点击实例名称,进入控制台可以查看此实例的启动进度
  1. 在 FinalShell 使用root用户登录控制节点,以下命令如无特别说明,都在控制节点执行。

  2. 查看控制节点的主机名(hostname)。

hostname
  • 正常应该返回
opstk-ctrl
  1. 控制节点输入命令,直接使用 SSH 连接 OpenStack 的虚拟机实例inst3
ssh cirros@10.0.0.104

如果需要输入密码,输入gocubsgo

  1. 登录inst3实例以后,查看主机名。
hostname
  • 正常应该返回
inst3
  1. 退出inst3
exit
  1. 在浏览器关闭实例inst3

任务4.2 在浏览器界面创建新的虚拟机

【任务目的】

  • 掌握 OpenStack 浏览器界面创建新的虚拟机

【任务环境】

  • VirtualBox
  • FinalShell

【任务资源】

  • Openstack-Compute1 虚拟机
  • Openstack-Controller 虚拟机

【任务步骤】

  1. 打开系统浏览器,访问 OpenStack 的 Web 界面http://10.0.0.11/dashboard/auth/login/。点击启动实例按钮。

  2. Instance Name(实例名)输入inst4-你学号后3位(注意替换你的个人学号),可用区域选择nova

  3. 源选择cirros

  4. flavor 选择虚拟机的配置。这里选择m1.nano

  5. 网络选择net1。该网络预先配置好了网段,并使用DHCP给新虚拟机分配IP。

  6. 安全组选择default。该安全组开放了ICMP协议和22端口。

  7. 密钥对选择key1。选择该密钥对,可以使得我们 SSH 免密登录虚拟机。

  8. 启动实例。

  9. 参考任务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

【任务步骤】

  1. FinalShell 使用 root 用户连接控制节点。以下命令若无特别说明,均在控制节点执行。
用户名:root
密码:123456
IP:10.0.0.11
  1. 使用命令创建一个新的 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          |
+--------------------------------------+-------------------------------------------+
  1. 执行以下命令,查看全部实例。
source /etc/keystone/admin-openrc
openstack server list
  1. 执行以下命令,启动你刚才创建的实例。注意替换你的个人学号。
openstack server start inst5-你的学号后3位
  1. 查看实例的相关信息。注意替换你的个人学号。
openstack server show inst5-你的学号后3位
  1. 使用openstack 命令 SSH 连接新实例。
openstack server ssh inst5 --private --login cirros
  1. 在新的实例执行以下命令查看返回结果。
  • 查看主机名
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
  1. 使用命令关闭实例。注意替换你的个人学号。
openstack server stop inst5-你的学号后3位
  1. 使用命令查看所有实例状态和网络。
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 虚拟机名称

扫码或长按识别访问