【版本】
当前版本号v20240314
版本 | 修改说明 |
---|---|
v20240314 | 新增常见问题 |
v20240310 | 新增参考配置 |
v20240306 | 增加注意事项,修改flavor内存为256MB |
v20230701 | 文档基于 RockyLinux8 和 Openstack Yoga 开发 |
任务9 - 控制节点启动一个镜像实例
【任务目的】
- 掌握使用 Openstack 创建虚拟机实例
【任务环境】
- 内存:至少4G
- 硬盘:至少空余40G
- 操作系统: 64位 Windows系统。
【任务资源】
- FinalShell
- RockyLinux 8 系统镜像
- VirtualBox
【任务步骤】
本实验控制节点(Controller)和计算节点(Computer)都需要启动
- 使用 root 用户登录控制节点(Controller)。输出 Hostname ,确认所在节点是控制节点。
hostname
结果:
controller+你的学号后3位
注意以下步骤在控制节点(Controller)上执行!
控制节点测试生成 Token
- 创建一个 Token,查看是否能够成功获取。
source /etc/keystone/admin-openrc
openstack token issue
控制节点创建网络
- 创建一个网络,注意替换为你的学号。
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 |
+---------------------------+--------------------------------------+
- 创建一个子网络,注意替换为你的学号。
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位
- 进入 Dashboard(http://10.0.0.11/project/networks/),查看网络是否存在。
创建硬件配置方案
- 创建云主机的硬件配置方案,
m1.nano
1个虚拟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
创建密钥对
- 创建密钥对,注意替换为你的学号。
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.regular --image cirros62 --nic net-id=net+你的学号后3位 --security-group default --key-name key+你的学号后3位 ins+你的学号后3位
网络 ID 可以通过
neutron net-list
命令查看
- 进入 Dashboard(http://10.0.0.11/project/instances/) 查看实例是否存在。
注意:一定要保证
控制节点
和计算节点
都要启动
- 使用命令查看实例状态(Status)是否为 Active。记录实例的 IP 地址。
source /etc/keystone/admin-openrc
openstack server list
- 如果实例没有启动,可以使用以下命令启动。注意替换为你的学号。
openstack server start ins+你的学号后3位
- 进入 Dashboard(http://10.0.0.11/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 网页进行操作,上创建一个新的实例。请自己搜索或参考过往实验资料完成。