Part 8 - 启动一个镜像实例

2021-03-08
4分钟阅读时长

【版本】

当前版本号v20220308

版本修改说明
v20220308增加提醒让学生同时启动控制节点和计算节点
v20220307增加查看 neutron 网络 ID 的命令
v20220209修正步骤
v20210309修改步骤9的描述
v20210308初始化版本

【实验名称】

云计算部署实战 Part 8 - 启动一个镜像实例

【实验目的】

  • 掌握使用 Openstack 创建虚拟机实例

【实验环境】

  • 内存:至少4G
  • 硬盘:至少空余40G
  • 操作系统: 64位 Windows系统。

【实验资源】

  • FinalShell
  • CentOS 7 系统镜像
  • VirtualBox
  • Openstack 源

【实验步骤】

本实验控制节点(Controller)和计算节点(Computer)都需要启动
  1. 使用 root 用户登录控制节点(Controller)。输出 Hostname ,确认所在节点是控制节点。
hostname

结果:

controller+你的学号后3位
注意以下步骤在控制节点(Controller)上执行!

控制节点测试生成 Token

  1. 创建一个 Token,查看是否能够成功获取。
source /etc/keystone/admin-openrc
openstack token issue

控制节点创建网络

  1. 创建一个网络,注意替换为你的学号。
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                  |
+---------------------------+--------------------------------------+

  1. 进入 Dashboard(http://10.0.0.11/dashboard/admin/networks/),查看网络是否存在。

  2. 创建一个子网络,注意替换为你的学号。

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
  1. 进入 Dashboard(http://10.0.0.11/dashboard/admin/networks/) 查看子网是否存在。

控制节点创建一个硬件配置方案

  1. 创建云主机的硬件配置方案,1个虚拟CPU核心,64MB内存,1块硬盘。使用m1.nano规格的主机来加载镜像。
openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano

控制节点创建密钥对

  1. 创建密钥对,注意替换为你的学号。
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                |
+-------------+-------------------------------------------------+

控制节点创建安全组规则

  1. 创建安全组规则,开放icmp端口和 22 端口。
openstack security group rule create --proto icmp default
openstack security group rule create --proto tcp --dst-port 22 default

控制节点创建虚拟机实例并启动

  1. 新建一个 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命令查看

  1. 进入 Dashboard() 查看实例是否存在。

  2. 使用命令查看实例状态(Status)是否为 Active。记录实例的 IP 地址。

source /etc/keystone/admin-openrc
openstack server list
  1. 如果实例没有启动,可以使用以下命令启动。注意替换为你的学号。
openstack server start ins+你的学号后3位
  1. 进入 Dashboard(http://10.0.0.11/dashboard/project/instances/),通过vnc 模式访问实例。

控制节点连接虚拟机

  1. 使用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
  1. 使用 SSH 命令进行免密登录 CirrOS 实例。请注意替换实例IP地址。如果无法使用免密登录,可以使用账户密码cirros/gocubsgo登录。
ssh cirros@替换实例IP地址
  1. 登录 CirrOS 实例以后,输出系统 hostname 和 IP。请自己搜索命令完成。

  2. 尝试在 Dashboard 网页进行操作,上创建一个新的实例。请自己搜索或参考过往实验资料完成。

【常见问题】

  1. 控制节点 ping Openstack 的实例无响应。
  • (1)检查该实例是否者已启动并且活跃(Active)。
  • (2)检查虚拟机的网卡混合模式是否为全部允许,参考此步骤
  1. 使用 SSH 登录 CirrOS 实例没有免密登录,需要输入用户名和密码。

【思考和探索】

  1. 自主查询命令,使用相应命令停止 Openstack 实例。

提示:可使用以下命令查看帮忙文档

openstack --help|grep server

扫码或长按识别访问