Part 9 - 启动一个镜像实例

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

【版本】

当前版本号v20240314

版本修改说明
v20240314新增常见问题
v20240310新增参考配置
v20240306增加注意事项,修改flavor内存为256MB
v20230701文档基于 RockyLinux8 和 Openstack Yoga 开发

任务9 - 控制节点启动一个镜像实例

【任务目的】

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

【任务环境】

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

【任务资源】

  • FinalShell
  • RockyLinux 8 系统镜像
  • VirtualBox

【任务步骤】

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

结果:

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

控制节点测试生成 Token

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

控制节点创建网络

  1. 创建一个网络,注意替换为你的学号。
openstack network create --share --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. 创建一个子网络,注意替换为你的学号。
source /etc/keystone/admin-openrc
openstack subnet create  --allocation-pool start=10.0.0.101,end=10.0.0.250 --dns-nameserver 223.5.5.5 --gateway 10.0.0.254 --network net+你的学号后3位 --subnet-range 10.0.0.0/24 subnet+你的学号后3位
  1. 进入 Dashboard(http://10.0.0.11/project/networks/),查看网络是否存在。

创建硬件配置方案

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

创建密钥对

  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.regular --image cirros62 --nic net-id=net+你的学号后3位 --security-group default --key-name key+你的学号后3位 ins+你的学号后3位

网络 ID 可以通过neutron net-list命令查看

  1. 进入 Dashboard(http://10.0.0.11/project/instances/) 查看实例是否存在。

注意:一定要保证控制节点计算节点都要启动

  1. 使用命令查看实例状态(Status)是否为 Active。记录实例的 IP 地址。
source /etc/keystone/admin-openrc
openstack server list
  1. 如果实例没有启动,可以使用以下命令启动。注意替换为你的学号。
openstack server start ins+你的学号后3位
  1. 进入 Dashboard(http://10.0.0.11/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 网页进行操作,上创建一个新的实例。请自己搜索或参考过往实验资料完成。

【常见问题FAQ】

常见问题FAQ

扫码或长按识别访问