【版本】
当前版本号v20220308
版本 | 修改说明 |
---|---|
v20220308 | 增加提醒让学生同时启动控制节点和计算节点 |
v20220307 | 增加查看 neutron 网络 ID 的命令 |
v20220209 | 修正步骤 |
v20210309 | 修改步骤9的描述 |
v20210308 | 初始化版本 |
【实验名称】
云计算部署实战 Part 8 - 启动一个镜像实例
【实验目的】
- 掌握使用 Openstack 创建虚拟机实例
【实验环境】
- 内存:至少4G
- 硬盘:至少空余40G
- 操作系统: 64位 Windows系统。
【实验资源】
- FinalShell
- CentOS 7 系统镜像
- VirtualBox
- Openstack 源
【实验步骤】
本实验控制节点(Controller)和计算节点(Computer)都需要启动
- 使用 root 用户登录控制节点(Controller)。输出 Hostname ,确认所在节点是控制节点。
hostname
结果:
controller+你的学号后3位
注意以下步骤在控制节点(Controller)上执行!
控制节点测试生成 Token
- 创建一个 Token,查看是否能够成功获取。
source /etc/keystone/admin-openrc
openstack token issue
控制节点创建网络
- 创建一个网络,注意替换为你的学号。
neutron net-create --shared --provider:physical_network provider --provider:network_type flat net+你的学号后3位
创建成功会返回类似以下的表格。保存表格中的网络ID。
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2021-03-07T16:17:40 |
| description | |
| id | 80708834-0391-42d0-8f1c-74e81bba9f9e |
| ipv4_address_scope | |
| ipv6_address_scope | |
| mtu | 1500 |
| name | net9999 |
| port_security_enabled | True |
| provider:network_type | flat |
| provider:physical_network | provider |
| provider:segmentation_id | |
| router:external | False |
| shared | True |
| status | ACTIVE |
| subnets | |
| tags | |
| tenant_id | 70667e2a19c640b796c9e2de6571a33c |
| updated_at | 2021-03-07T16:17:40 |
+---------------------------+--------------------------------------+
进入 Dashboard(http://10.0.0.11/dashboard/admin/networks/),查看网络是否存在。
创建一个子网络,注意替换为你的学号。
source /etc/keystone/admin-openrc
neutron subnet-create --name subnet+你的学号后3位 --allocation-pool start=10.0.0.101,end=10.0.0.250 --dns-nameserver 223.5.5.5 --gateway 10.0.0.254 net+你的学号后3位 10.0.0.0/24
- 进入 Dashboard(http://10.0.0.11/dashboard/admin/networks/) 查看子网是否存在。
控制节点创建一个硬件配置方案
- 创建云主机的硬件配置方案,1个虚拟CPU核心,64MB内存,1块硬盘。使用
m1.nano
规格的主机来加载镜像。
openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
控制节点创建密钥对
- 创建密钥对,注意替换为你的学号。
ssh-keygen -q -N "" -f ~/.ssh/id_rsa
openstack keypair create --public-key ~/.ssh/id_rsa.pub key+你的学号后3位
创建成功的密钥对会出现类似以下表格。
+-------------+-------------------------------------------------+
| Field | Value |
+-------------+-------------------------------------------------+
| fingerprint | eb:fc:77:f5:6b:d0:fe:77:fd:40:19:39:97:23:56:01 |
| name | key9999 |
| user_id | 5b74a6845f264ae9912b78d4a32f5f73 |
+-------------+-------------------------------------------------+
控制节点创建安全组规则
- 创建安全组规则,开放icmp端口和 22 端口。
openstack security group rule create --proto icmp default
openstack security group rule create --proto tcp --dst-port 22 default
控制节点创建虚拟机实例并启动
- 新建一个 CirrOS 实例并启动。注意替换为你的学号和网络ID。
openstack server create --flavor m1.nano --image cirros --nic net-id=网络ID --security-group default --key-name key+你的学号后3位 ins+你的学号后3位
网络 ID 可以通过
neutron net-list
命令查看
source /etc/keystone/admin-openrc
openstack server list
- 如果实例没有启动,可以使用以下命令启动。注意替换为你的学号。
openstack server start ins+你的学号后3位
- 进入 Dashboard(http://10.0.0.11/dashboard/project/instances/),通过vnc 模式访问实例。
控制节点连接虚拟机
- 使用
ping
命令测试实例的 IP 是否能够连通。请注意替换实例IP地址。
ping 替换实例IP地址
正常能够响应会返回类似以下内容
64 bytes from 10.0.0.103: icmp_seq=1 ttl=64 time=8.91 ms
如果无法响应会返回类似以下内容
From 10.0.0.11 icmp_seq=1 Destination Host Unreachable
- 使用 SSH 命令进行免密登录 CirrOS 实例。请注意替换实例IP地址。如果无法使用免密登录,可以使用账户密码
cirros/gocubsgo
登录。
ssh cirros@替换实例IP地址
登录 CirrOS 实例以后,输出系统 hostname 和 IP。请自己搜索命令完成。
尝试在 Dashboard 网页进行操作,上创建一个新的实例。请自己搜索或参考过往实验资料完成。
【常见问题】
- 控制节点 ping Openstack 的实例无响应。
- (1)检查该实例是否者已启动并且活跃(Active)。
- (2)检查虚拟机的网卡混合模式是否为全部允许,参考此步骤
- 使用 SSH 登录 CirrOS 实例没有免密登录,需要输入用户名和密码。
- 检查 Neutron 的配置文件
/etc/neutron/metadata_agent.ini
是否配置正确。查看Part 6 的步骤15,16。
【思考和探索】
- 自主查询命令,使用相应命令停止 Openstack 实例。
提示:可使用以下命令查看帮忙文档
openstack --help|grep server