OpenStack(1)--创建实例

目录

一、上传镜像

1.1 新建目录

1.2 上传至glance

1.3 查看镜像

二、新建实例

2.1 获取秘钥

2.2 新建实例

2.3 新建实例admin-vm

2.4 获取实例VNC的url

2.5 nova常用命令


一、上传镜像

1.1 新建目录

上传名为cirros-0.3.4-x86_64-disk.img的Linux测试镜像,cirros镜像通常用来做测试用,仅12M大小,方便测试。

新建用于存放镜像的目录,此处如果wget失败需要在宿主机下载后用xftp传入虚拟机/opt/images目录。

source /root/keystonerc_admin

mkdir /opt/images
cd /opt/images
wget https://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

1.2 上传至glance

 上传至glance服务,glance image-create --name cirros-0.3.4-x86_64 --disk-format qcow2 --container-format bare --file /opt/images/cirros-0.3.4-x86_64-disk.img  --visibility public --progress

 命令解释:

--name 镜像名称

--disk-format 镜像的磁盘格式,支持:ami, ari, aki, vhd, vmdk, raw, qcow2, vdi,iso 格式

--container-format 镜像容器格式,支持:ami, ari, aki, bare, ovf 格式

--file 镜像路径

--visibility 镜像是否可以被公共访问,此处设置为公共镜像

--progress 显示上传进度条

[root@openstack images(keystone_admin)]# glance image-create --name cirros-0.3.4-x86_64 --disk-format qcow2 --container-format bare --file /opt/images/cirros-0.3.4-x86_64-disk.img  --visibility public --progress
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6     |
| container_format | bare                                 |
| created_at       | 2023-06-07T13:38:26Z                 |
| disk_format      | qcow2                                |
| id               | 041c0a42-adc2-4694-b932-7f01ae198919 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | cirros-0.3.4-x86_64                  |
| owner            | 5de5c5079f4147a69f330e9ce20c7f1b     |
| protected        | False                                |
| size             | 13287936                             |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2023-06-07T13:38:26Z                 |
| virtual_size     | None                                 |
| visibility       | public                               |
+------------------+--------------------------------------+

1.3 查看镜像

使用 glance image-list 查看镜像列表或通过通过仪表盘查看,上传glance成功。不要使用 nova image-list,该命令已弃用。

[root@openstack ~(keystone_admin)]# glance image-list
+--------------------------------------+---------------------+
| ID                                   | Name                |
+--------------------------------------+---------------------+
| 5955b3dc-00b3-4dec-b21a-a9605275faf2 | cirros              |
| 041c0a42-adc2-4694-b932-7f01ae198919 | cirros-0.3.4-x86_64 |
+--------------------------------------+---------------------+

创建实例之前必须指定实例类型、镜像名、网络、安全组、密钥、实例名

查看可用实例类型 nova flavor-list ,默认五种类型

[root@openstack ~(keystone_admin)]# nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 1  | m1.tiny   | 512       | 1    | 0         |      | 1     | 1.0         | True      | -           |
| 2  | m1.small  | 2048      | 20   | 0         |      | 1     | 1.0         | True      | -           |
| 3  | m1.medium | 4096      | 40   | 0         |      | 2     | 1.0         | True      | -           |
| 4  | m1.large  | 8192      | 80   | 0         |      | 4     | 1.0         | True      | -           |
| 5  | m1.xlarge | 16384     | 160  | 0         |      | 8     | 1.0         | True      | -           |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+

查看可用网络 neutron net-list,默认一个公共网,一个内部网,外部网络表示与其他项目共用该网络。

[root@openstack ~(keystone_admin)]# neutron net-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+---------+----------------------------------+----------------------------------------------------+
| id                                   | name    | tenant_id                        | subnets                                            |
+--------------------------------------+---------+----------------------------------+----------------------------------------------------+
| 39bf56a4-68a8-4f9c-af56-b7bf788a5c45 | public  | 5de5c5079f4147a69f330e9ce20c7f1b | 4bdac25f-a68e-4ef5-b638-c7f9500957ce 172.24.4.0/24 |
| 639cf33e-3ced-45a7-9d1e-542cd5aec015 | private | 2e506aef614242ee8f5fe824fdf74226 | 2034ab92-5372-47f5-89b0-88d17f9b26d2 10.0.0.0/24   |
+--------------------------------------+---------+----------------------------------+----------------------------------------------------+

查看安全组 openstack security group list,不要使用 nova secgroup-list,该命令已弃用。

[root@openstack images(keystone_admin)]# openstack security group list
+--------------------------------------+---------+------------------------+----------------------------------+
| ID                                   | Name    | Description            | Project                          |
+--------------------------------------+---------+------------------------+----------------------------------+
| 18102e48-6a05-4901-ae9e-a0d43647a9f3 | default | Default security group |                                  |
| ec20a954-0572-428f-87a3-4916318fcadc | default | Default security group | 2e506aef614242ee8f5fe824fdf74226 |
| f18bcb15-5573-4dd1-8de5-c201b5472ceb | default | Default security group | 5de5c5079f4147a69f330e9ce20c7f1b |
+--------------------------------------+---------+------------------------+----------------------------------+

二、新建实例

2.1 获取秘钥

 获取密钥admin-key,获取后重启虚拟机秘钥仍然存在,秘钥跟账户是绑定的。

source /root/keystonerc_admin
nova keypair-add admin-key
openstack keypair list

[root@openstack images(keystone_admin)]# openstack keypair list
+-----------+-------------------------------------------------+
| Name      | Fingerprint                                     |
+-----------+-------------------------------------------------+
| admin-key | c0:83:d6:02:35:39:a9:6e:a0:4e:46:5a:52:af:3d:ec |
+-----------+-------------------------------------------------+

查看nove列表,nova list,此时没有实例。

[root@openstack ~(keystone_admin)]# nova list
+----+------+--------+------------+-------------+----------+
| ID | Name | Status | Task State | Power State | Networks |
+----+------+--------+------------+-------------+----------+
+----+------+--------+------------+-------------+----------+

2.2 新建实例

查看网络id,此处我使用的就是public网络,提前复制id号39bf56a4-68a8-4f9c-af56-b7bf788a5c45。

[root@openstack ~(keystone_admin)]# neutron net-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+---------+----------------------------------+----------------------------------------------------+
| id                                   | name    | tenant_id                        | subnets                                            |
+--------------------------------------+---------+----------------------------------+----------------------------------------------------+
| 39bf56a4-68a8-4f9c-af56-b7bf788a5c45 | public  | 5de5c5079f4147a69f330e9ce20c7f1b | 4bdac25f-a68e-4ef5-b638-c7f9500957ce 172.24.4.0/24 |
| 639cf33e-3ced-45a7-9d1e-542cd5aec015 | private | 2e506aef614242ee8f5fe824fdf74226 | 2034ab92-5372-47f5-89b0-88d17f9b26d2 10.0.0.0/24   |
+--------------------------------------+---------+----------------------------------+----------------------------------------------------+

2.3 新建实例admin-vm

nova boot --flavor m1.tiny --image cirros-0.3.4-x86_64 --nic net-id=39bf56a4-68a8-4f9c-af56-b7bf788a5c45 --security-group default --key-name admin-key admin-vm

命令解释:

--flavor 实例类型

--image 镜像名,必须先上传至glance服务,通过 glance image-list 查看镜像列表

--nic 使用网络,net-id= 填写网络id号

-security-group 安全组

--key-name 选择秘钥

admin-vm 实例名,可随意取

[root@openstack images(keystone_admin)]# nova boot --flavor m1.tiny --image cirros-0.3.4-x86_64 --nic net-id=39bf56a4-68a8-4f9c-af56-b7bf788a5c45 --security-group default --key-name admin-key admin-vm
+--------------------------------------+------------------------------------------------------------+
| Property                             | Value                                                      |
+--------------------------------------+------------------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                                     |
| OS-EXT-AZ:availability_zone          |                                                            |
| OS-EXT-SRV-ATTR:host                 | -                                                          |
| OS-EXT-SRV-ATTR:hostname             | admin-vm                                                   |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                                          |
| OS-EXT-SRV-ATTR:instance_name        |                                                            |
| OS-EXT-SRV-ATTR:kernel_id            |                                                            |
| OS-EXT-SRV-ATTR:launch_index         | 0                                                          |
| OS-EXT-SRV-ATTR:ramdisk_id           |                                                            |
| OS-EXT-SRV-ATTR:reservation_id       | r-1x8lssuk                                                 |
| OS-EXT-SRV-ATTR:root_device_name     | -                                                          |
| OS-EXT-SRV-ATTR:user_data            | -                                                          |
| OS-EXT-STS:power_state               | 0                                                          |
| OS-EXT-STS:task_state                | scheduling                                                 |
| OS-EXT-STS:vm_state                  | building                                                   |
| OS-SRV-USG:launched_at               | -                                                          |
| OS-SRV-USG:terminated_at             | -                                                          |
| accessIPv4                           |                                                            |
| accessIPv6                           |                                                            |
| adminPass                            | uirGY9o8kaL6                                               |
| config_drive                         |                                                            |
| created                              | 2023-06-07T15:54:32Z                                       |
| description                          | -                                                          |
| flavor:disk                          | 1                                                          |
| flavor:ephemeral                     | 0                                                          |
| flavor:extra_specs                   | {}                                                         |
| flavor:original_name                 | m1.tiny                                                    |
| flavor:ram                           | 512                                                        |
| flavor:swap                          | 0                                                          |
| flavor:vcpus                         | 1                                                          |
| hostId                               |                                                            |
| host_status                          |                                                            |
| id                                   | b5f47588-196a-40d6-a52b-7f2cd371f417                       |
| image                                | cirros-0.3.4-x86_64 (041c0a42-adc2-4694-b932-7f01ae198919) |
| key_name                             | admin-key                                                  |
| locked                               | False                                                      |
| metadata                             | {}                                                         |
| name                                 | admin-vm                                                   |
| os-extended-volumes:volumes_attached | []                                                         |
| progress                             | 0                                                          |
| security_groups                      | default                                                    |
| status                               | BUILD                                                      |
| tags                                 | []                                                         |
| tenant_id                            | 5de5c5079f4147a69f330e9ce20c7f1b                           |
| updated                              | 2023-06-07T15:54:32Z                                       |
| user_id                              | a6ecc9dfabd04180947bfad72c67e5d4                           |
+--------------------------------------+------------------------------------------------------------+

 查看实例列表nova list

[root@openstack images(keystone_admin)]# nova list
+--------------------------------------+----------+--------+------------+-------------+--------------------+
| ID                                   | Name     | Status | Task State | Power State | Networks           |
+--------------------------------------+----------+--------+------------+-------------+--------------------+
| b5f47588-196a-40d6-a52b-7f2cd371f417 | admin-vm | ACTIVE | -          | Running     | public=172.24.4.17 |
+--------------------------------------+----------+--------+------------+-------------+--------------------+

 还可以通过virsh list查看

[root@localhost images(keystone_admin)]# virsh list
 Id    Name                           State
----------------------------------------------------
 1     instance-00000001              running

还可以通过仪表盘查看 


 

2.4 获取实例VNC的url

实例新建成功,那么如何进入新建的实例呢?需要获取实例VNC的url ,nova get-vnc-console admin-vm novnc,每次使用该命令都会刷新url,url刷新后旧的url就会失效,实例重启后也需要重新获取url。

[root@openstack images(keystone_admin)]# nova get-vnc-console admin-vm novnc
+-------+-------------------------------------------------------------------------------------+
| Type  | Url                                                                                 |
+-------+-------------------------------------------------------------------------------------+
| novnc | http://192.168.136.56:6080/vnc_auto.html?token=6d463d80-8e49-4100-8cdf-f10d5fc94af2 |
+-------+-------------------------------------------------------------------------------------+

拿到url后再浏览器输入即可进入实例的一个终端,进入后需要等待大概5分钟,才会出现“cirrors login:”表示实例正式启动成功,cirros镜像根据提示,账号名为cirros,密码为cubswin:)。

若出现Failed connect to server(code:1006)报错

查看是否实例是否启动,实例状态必须为ACTIVE,我遇到过两次实例自动关机的状况,最后发现是内存不足导致,推荐内存至少10G。

如果实例开机还是不行,添加hosts并重启nova服务

vi /etc/hosts
192.168.136.56 openstack  #添加,注意是主机名,如果你的主机名不是openstack,自行更改,保证可以ping通主机名就可以
source /etc/hosts
systemctl restart openstack-nova-compute.service

[root@openstack ~(keystone_admin)]# ping openstack
PING openstack (192.168.136.56) 56(84) bytes of data.
64 bytes from openstack (192.168.136.56): icmp_seq=1 ttl=64 time=0.034 ms
64 bytes from openstack (192.168.136.56): icmp_seq=2 ttl=64 time=0.035 ms

除了使用url登录还以直接通过仪表盘的“控制台”直接控制实例。

2.5 nova常用命令

nova list #查看虚拟机

nova show [vm-name]或[vm-id]     #查看虚拟机详细信息
nova reboot (--hard) [vm-name]或[vm-id]    #硬重启实例,失败可以添加属性--hard,强制硬重启

nova start [vm-name]或[vm-id]    #启动虚拟机
nova stop [vm-name]或[vm-id]     #关闭虚拟机
nova suspend [vm-name]或[vm-id]  #暂停虚拟机
nova resume [vm-name]或[vm-id]   #启动暂停的虚拟机
nova delete [vm-name]或[vm-id]   #删除虚拟机

openstack compute service list   #查看nova相关服务
<think>嗯,用户想知道在OpenStack中如何创建虚拟机实例。首先,我需要回忆一下OpenStack的基本架构和相关组件。OpenStack包含多个服务,比如Nova负责计算,Glance管理镜像,Neutron处理网络,Cinder提供块存储等等。创建实例通常需要这些组件的协同工作。 接下来,用户可能已经部署好了OpenStack环境,但需要具体的步骤指导。根据引用内容,用户提到了CentOS7上的部署和创建实例的不同方法,比如使用ISO镜像、实例快照等。因此,我需要将这些方法整理出来,给出清晰的步骤。 首先,要创建实例,必须确保各个服务正常运行,比如Nova、Glance、Neutron。然后需要准备镜像,这里用户提到使用ISO镜像创建实例的问题,可能需要注意镜像的配置是否正确,比如是否正确挂载磁盘。引用[4]提到无法找到磁盘的问题,可能需要检查镜像的设置或者引导顺序。 步骤方面,可能需要分几个大步骤:环境准备、上传镜像、创建网络、配置安全组、最后创建实例。每个步骤都需要详细说明,比如如何上传ISO镜像到Glance,如何创建外部网络和子网,安全组规则的设置等。同时,用户可能对命令行操作和Dashboard操作都感兴趣,所以应该涵盖这两种方式。 另外,用户可能遇到的问题,比如创建实例时找不到磁盘,可能需要在镜像属性中设置正确的disk_format和hw_disk_bus等参数。引用[4]中的链接可能提供了解决方法,但需要确认是否正确配置了这些参数。此外,实例创建后无法访问网络的问题,可能需要检查网络配置、安全组规则是否正确,以及是否分配了浮动IP。 相关问题的生成方面,用户可能想进一步了解如何上传自定义镜像,如何配置网络,或者如何处理常见的创建失败问题。因此,相关问题可以包括这些方面,帮助用户深入学习和解决问题。 需要确保回答中的技术术语准确,比如实例、镜像、安全组、浮动IP等,并且步骤清晰,用户能够按照指导逐步操作。同时,引用正确的参考资料,比如引用[2]中提到的使用ISO镜像创建实例的方法,引用[3]中提到的创建空白虚拟机并安装系统的步骤,这些都需要在回答中适当引用。 最后,要检查回答是否符合格式要求,比如数学公式是否正确使用$符号,独立公式是否用$$,中文回答,生成相关问题等。确保没有使用Markdown格式,同时结构清晰,分步骤说明,帮助用户顺利完成实例创建。</think>### OpenStack创建虚拟机实例的步骤教程 在OpenStack创建虚拟机实例需通过Nova计算服务、Glance镜像服务和Neutron网络服务协同完成。以下是详细步骤: --- #### 一、环境准备 1. **验证服务状态** 通过命令行或Dashboard确保以下服务正常运行: ```bash openstack compute service list # 检查Nova服务 openstack network agent list # 检查Neutron网络代理 openstack image list # 检查Glance镜像列表 ``` 2. **镜像上传** - 若使用ISO镜像,需通过Glance上传并配置属性: ```bash openstack image create "CentOS7-ISO" \ --file CentOS-7-x86_64-Minimal-2009.iso \ --disk-format iso \ --container-format bare \ --public ``` 需设置`hw_disk_bus=ide`或`hw_cdrom_bus=ide`属性以支持ISO引导[^4]。 - 若使用已有镜像(如QCOW2格式),可直接选择。 --- #### 二、网络配置 1. **创建外部网络** ```bash openstack network create --external --provider-network-type flat --provider-physical-network physnet1 public-net openstack subnet create --network public-net --subnet-range 192.168.1.0/24 --gateway 192.168.1.1 public-subnet ``` 2. **创建租户网络** ```bash openstack network create private-net openstack subnet create --network private-net --subnet-range 10.0.0.0/24 private-subnet ``` --- #### 三、安全组设置 1. **添加基础规则** ```bash openstack security group rule create --protocol icmp --ingress default openstack security group rule create --protocol tcp --dst-port 22 --ingress default ``` --- #### 四、创建实例(以Dashboard为例) 1. **选择镜像** - 导航至**Compute > Images**,选择已上传的镜像(如`CentOS7-ISO`)。 2. **配置实例参数** - **名称**:输入实例名称(如`vm-test`)。 - **规格**:选择计算规格(如`m1.small`)。 - **网络**:关联已创建的`private-net`。 - **安全组**:勾选`default`安全组。 3. **启动实例** 点击**Launch Instance**,等待状态变为`Active`。 --- #### 五、访问实例 1. **分配浮动IP** ```bash openstack floating ip create public-net # 申请IP openstack server add floating ip vm-test <Floating-IP> ``` 2. **SSH连接** ```bash ssh -i key.pem centos@<Floating-IP> ``` --- #### 常见问题解决 - **实例启动失败**:检查Nova调度日志`/var/log/nova/nova-scheduler.log`,确认资源配额是否充足。 - **无法找到磁盘**:ISO镜像需设置`hw_disk_bus=ide`属性,并确保虚拟机引导顺序正确[^4]。 - **网络不通**:验证安全组规则、网络拓扑及浮动IP绑定状态[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值