【版本】
当前版本号v20221022
版本 | 修改说明 |
---|---|
v20221022 | 增加了常见问题描述 |
v20211018 | 增加了VMWare 的步骤,并加入一些注意事项提醒 |
v20211016 | 加入一些提醒 |
v20211011 | 修改实验4.2 实例名称 |
v20210926 | 初始化版本 |
【实验名称】实验4.1 注册 OpenStack 虚拟机
【实验目的】
- 掌握 OpenStack 虚拟机的注册和配置
【实验环境】
- VirtualBox
- FinalShell
【实验资源】
- Openstack-Compute1 虚拟机
- Openstack-Controller 虚拟机
链接:https://pan.baidu.com/s/1kw7nT7dbonUTSlPqIHVwhQ
提取码: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.ova
2台虚拟机。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-enps3 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
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内存。
网络配置设置为
仅主机(Host-Only)网络
,混杂模式设置为全部允许
。网卡 IP 配置参考实验1.1
- 设置
计算节点1
- 系统配置为1核处理器,1024M内存。
- 网络配置设置为
仅主机(Host-Only)网络
,混杂模式设置为全部允许
。网卡 IP 配置参考实验1.1
- 启动
控制节点
,使用 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
的IP地址为10.0.0.104。启动实例inst3
。
实例 inst3 是一个预装的 Cirros 系统的虚拟机。
在 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 虚拟机
链接:https://pan.baidu.com/s/1kw7nT7dbonUTSlPqIHVwhQ
提取码:heis
【实验步骤】
打开系统浏览器,访问 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/1kw7nT7dbonUTSlPqIHVwhQ
提取码: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 安全密钥对名称 虚拟机实例名称
- 执行以下命令,查看全部实例。
source /etc/keystone/admin-openrc
openstack server list
- 正常会返回类似以下表格:
+--------------------------------------+-------------------------------------------+
| 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 |
+--------------------------------------+-------------------------------------------+
- 执行以下命令,启动你刚才创建的实例。注意替换你的个人学号。
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