date: 2021-03-14title: openstack指令——nova篇 #标题
tags: #标签
categories: openstack # 分类
查看openstack组件版本
# 可增加 --all 选项查看更多组件信息
$ openstack module list
+-----------------+--------+
| Field | Value |
+-----------------+--------+
| barbicanclient | 4.6.1 |
| cinderclient | 3.5.0 |
| designateclient | 2.9.0 |
| keystoneclient | 3.15.1 |
| novaclient | 10.1.1 |
| openstack | 0.11.4 |
| openstackclient | 3.14.3 |
| swiftclient | 3.5.1 |
+-----------------+--------+
nova指令
列举当前用户所有虚机
$ nova list
+--------------------------------------+-------+--------+------------+-------------+--------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+-------+--------+------------+-------------+--------------------------+
| c329d5a1-1330-44ae-94f5-05933157fd32 | web01 | ACTIVE | - | Running | lvjianzhao=192.168.20.34 |
+--------------------------------------+-------+--------+------------+-------------+--------------------------+
列举某个虚机的详细信息
$ nova show c329d5a1-1330-44ae-94f5-05933157fd32
+--------------------------------------+----------------------------------------------------------------------------------------------------------------------+
| Property | Value |
+--------------------------------------+----------------------------------------------------------------------------------------------------------------------+
| OS-DCF:diskConfig | AUTO |
| OS-EXT-AZ:availability_zone | test |
| OS-EXT-SRV-ATTR:host | compute02 |
| OS-EXT-SRV-ATTR:hostname | web01 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | compute02 |
| OS-EXT-SRV-ATTR:instance_name | instance-00000006 |
| 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-aarve9xm |
| OS-EXT-SRV-ATTR:root_device_name | /dev/vda |
| OS-EXT-SRV-ATTR:user_data | IyEvYmluL2Jhc2gKZWNobyAnMTIzLmNvbScgfCBwYXNzd2QgLS1zdGRpbiByb290CmVjaG8gJzEyMy5jb20nIHwgcGFzc3dkIC0tc3RkaW4gY2VudG9z |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-STS:task_state | - |
| OS-EXT-STS:vm_state | active |
| OS-SRV-USG:launched_at | 2021-02-15T12:10:41.000000 |
| OS-SRV-USG:terminated_at | - |
| accessIPv4 | |
| accessIPv6 | |
| config_drive | |
| created | 2021-02-15T12:09:31Z |
| description | aaa |
| flavor:disk | 20 |
| flavor:ephemeral | 0 |
| flavor:extra_specs | {} |
| flavor:original_name | test |
| flavor:ram | 800 |
| flavor:swap | 16 |
| flavor:vcpus | 1 |
| hostId | dd09d44f9baf6b7bdd96f321f1d2ad39f287f773ee794408fd613f2a |
| host_status | UP |
| id | c329d5a1-1330-44ae-94f5-05933157fd32 |
| image | Attempt to boot from volume - no image supplied |
| key_name | mykey |
| locked | False |
| lvjianzhao network | 192.168.20.34 |
| metadata | {} |
| name | web01 |
| os-extended-volumes:volumes_attached | [{"id": "2466c102-37c6-4971-a80c-a9c048414771", "delete_on_termination": false}] |
| progress | 0 |
| security_groups | default |
| status | ACTIVE |
| tags | [] |
| tenant_id | 4085f844e7184e98813eab9b1ef2f350 |
| updated | 2021-03-04T06:11:59Z |
| user_id | c883cc6a37cc4a0db55698078657b4ea |
+--------------------------------------+----------------------------------------------------------------------------------------------------------------------+
获取所有服务列表
$ nova service-list
+--------------------------------------+------------------+------------+----------+---------+-------+----------------------------+-----------------+-------------+
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | Forced down |
+--------------------------------------+------------------+------------+----------+---------+-------+----------------------------+-----------------+-------------+
| 4f3651cf-61dd-4a58-b64c-b1c7b60dfddc | nova-scheduler | controller | internal | enabled | up | 2021-03-04T07:33:05.000000 | - | False |
| 3d0f7917-a612-4a8f-b374-eb3d5dbfe225 | nova-consoleauth | controller | internal | enabled | up | 2021-03-04T07:33:03.000000 | - | False |
| 98cd8ad8-e75a-414a-b9e0-86f4d4d1e99d | nova-conductor | controller | internal | enabled | up | 2021-03-04T07:33:00.000000 | - | False |
| b8ec9ffb-9ac8-4f54-afaf-6233cfa2b5e8 | nova-compute | compute01 | nova | enabled | up | 2021-03-04T07:33:08.000000 | - | False |
| ff7a5ba6-dba9-42f0-97dc-563907e43018 | nova-compute | compute02 | test | enabled | up | 2021-03-04T07:33:05.000000 | - | False |
+--------------------------------------+------------------+------------+----------+---------+-------+----------------------------+-----------------+-------------+
查询虚机vnc URL
$ nova get-vnc-console c329d5a1-1330-44ae-94f5-05933157fd32 novnc
+-------+---------------------------------------------------------------------------------+
| Type | Url |
+-------+---------------------------------------------------------------------------------+
| novnc | http://controller:6080/vnc_auto.html?token=adf0e978-8e1a-4a2f-a3c9-b6ee8471024f |
+-------+---------------------------------------------------------------------------------+
# 或者
$ openstack console url show 8e0962b1-5a64-4296-a13f-91a004b3e61b
+-------+---------------------------------------------------------------------------------+
| Field | Value |
+-------+---------------------------------------------------------------------------------+
| type | novnc |
| url | http://controller:6080/vnc_auto.html?token=59a14918-cdbe-4521-9718-d369d8091cfc |
+-------+---------------------------------------------------------------------------------+
# 如果为windows系统,请增加 --rdp选项
$ openstack console url show 8e0962b1-5a64-4296-a13f-91a004b3e61b --rdp
列出迁移列表
$ nova migration-list
+----+------+-------------+-----------+----------------+--------------+-----------+--------+---------------+------------+------------+------------+------------+------+
| Id | UUID | Source Node | Dest Node | Source Compute | Dest Compute | Dest Host | Status | Instance UUID | Old Flavor | New Flavor | Created At | Updated At | Type |
+----+------+-------------+-----------+----------------+--------------+-----------+--------+---------------+------------+------------+------------+------------+------+
+----+------+-------------+-----------+----------------+--------------+-----------+--------+---------------+------------+------------+------------+------------+------+
flavor篇
$ openstack flavor --help
Command "flavor" matches:
flavor create
flavor delete
flavor list
flavor set
flavor show
flavor unset
创建flavor计算方案
# 命令格式
$ openstack flavor create
[--id <id>]
[--ram <size-mb>]
[--disk <size-gb>]
[--ephemeral-disk <size-gb>]
[--swap <size-mb>]
[--vcpus <num-cpu>]
[--rxtx-factor <factor>]
[--public | --private]
[--property <key=value> [...] ]
[--project <project>]
[--project-domain <project-domain>]
<flavor-name>
# --id:指定flavor id号,可忽略
# --ram:指定内存大小(单位为MB),默认256M
# --disk:指定磁盘大小(单位为GB),默认为0G
# --ephemeral-disk:临时磁盘大小(以GB为单位)(默认为0G)
# --swap:交换空间大小(以MB为单位)(默认为0M)
# --vcpus:vcpus数量,默认为1
# --rxtx-factor:RX / TX因子(默认为1.0)
# --public:公用方案,可用于其他项目(默认)
# --private:私有方案
# --property <key=value>:为此方案添加的属性(重复设置多个属性的选项)
# --project <project>:指定方案所属项目,必须与--private选项一起使用
# --project-domain <project-domain>:项目所属的域(名称或ID)。如果项目名称之间存在冲突,则可以使用此方法。
# <flavor-name>:方案名称
# 命令示例
# --private:创建一个私有的计算方案,自动分配id,分配给admin项目,内存为256M,磁盘空间为1G,CPU为1核
$ openstack flavor create --private m1.extra_tiny --id auto \
--ram 256 --disk 1 --vcpus 1 --project 4085f844e7184e98813eab9b1ef2f350
# --public:创建一个公用的计算方案,规格同上,--id 可省略。
$ openstack flavor create --public m1.extra_tiny \
--ram 256 --disk 1 --vcpus 1
# 创建计算方案后,需要分配给指定项目(下面是分配给了demo项目)
# 可以指定为项目名称或id
$ openstack flavor set --project 291f8ffed66a452e838e48cb2eeecc19 m2.extra_tiny
查看flavor列表
# 命令格式如下:
$ openstack flavor list
[--public | --private | --all]
[--long]
[--limit <num-flavors>]
# --public:列出公有方案(默认)
# --private:仅列出私有方案
# --long:输出详细信息
# --limit:限制显示多少方案
$ openstack flavor list
+--------------------------------------+---------+-----+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+---------+-----+------+-----------+-------+-----------+
| fb5448ae-f946-4c19-822b-12d1ec6a7fe2 | m1.tiny | 512 | 1 | 0 | 1 | True |
+--------------------------------------+---------+-----+------+-----------+-------+-----------+
删除flavor方案
# 可以指定为flavor id或者flavor name
$ openstack flavor delete fa5c88cc-d9c9-4549-a957-dd89d50322a1
可用域篇
openstack availability zone list
[--compute]
[--network]
[--volume]
[--long]
# --compute:列出计算可用区
# --network:列出网络可用区
# --voluem:列出卷可用区
# --long:输出相信信息
主机聚合篇
$ openstack aggregate --help
Command "aggregate" matches:
aggregate add host
aggregate create
aggregate delete
aggregate list
aggregate remove host
aggregate set
aggregate show
aggregate unset
创建主机聚合-test
# 直接创建主机聚合test
$ nova aggregate-create test
+----+------+-------------------+-------+----------+--------------------------------------+
| Id | Name | Availability Zone | Hosts | Metadata | UUID |
+----+------+-------------------+-------+----------+--------------------------------------+
| 1 | test | - | | | d8c927b5-fe55-4383-b5d4-86f9e35c6085 |
+----+------+-------------------+-------+----------+--------------------------------------+
# 为nova域创建主机聚合test
$ openstack aggregate create --zone nova test
指定主机聚合的可用域
# 在上面没有指定主机聚合的可用域,是不行滴,那么如何补救呢?
$ nova aggregate-update --availability-zone test-zone test
Aggregate 2 has been successfully updated.
+----+------+-------------------+-------------+-------------------------------+--------------------------------------+
| Id | Name | Availability Zone | Hosts | Metadata | UUID |
+----+------+-------------------+-------------+-------------------------------+--------------------------------------+
| 2 | test | test-zone | 'compute02' | 'availability_zone=test-zone' | 84ceaf9f-8765-4733-9bc4-3b72290e5123 |
+----+------+-------------------+-------------+-------------------------------+--------------------------------------+
# 通过 --availability-zone 来指定主机聚合的可用域(无需提前创建可用域)
查看主机聚合
$ nova aggregate-list
+----+------+-------------------+--------------------------------------+
| Id | Name | Availability Zone | UUID |
+----+------+-------------------+--------------------------------------+
| 1 | test | - | d8c927b5-fe55-4383-b5d4-86f9e35c6085 |
+----+------+-------------------+--------------------------------------+
添加主机到主机聚合
$ nova aggregate-add-host test compute02
Host compute02 has been successfully added for aggregate 1
+----+------+-------------------+-------------+----------+--------------------------------------+
| Id | Name | Availability Zone | Hosts | Metadata | UUID |
+----+------+-------------------+-------------+----------+--------------------------------------+
| 1 | test | - | 'compute02' | | d8c927b5-fe55-4383-b5d4-86f9e35c6085 |
+----+------+-------------------+-------------+----------+--------------------------------------+
查看主机聚合中的计算节点
$ nova aggregate-show test
+----+------+-------------------+-------------+----------+--------------------------------------+
| Id | Name | Availability Zone | Hosts | Metadata | UUID |
+----+------+-------------------+-------------+----------+--------------------------------------+
| 1 | test | - | 'compute02' | | d8c927b5-fe55-4383-b5d4-86f9e35c6085 |
+----+------+-------------------+-------------+----------+--------------------------------------+
移除主机聚合中的主机
$ nova aggregate-remove-host test compute02
Host compute02 has been successfully removed from aggregate 1
+----+------+-------------------+-------+----------+--------------------------------------+
| Id | Name | Availability Zone | Hosts | Metadata | UUID |
+----+------+-------------------+-------+----------+--------------------------------------+
| 1 | test | - | | | d8c927b5-fe55-4383-b5d4-86f9e35c6085 |
+----+------+-------------------+-------+----------+--------------------------------------+
删除主机聚合
$ nova aggregate-delete test
查看虚机console log
$ openstack console log show VM_ID
# 可使用 --lines number 指定输出行数,默认输出所有
浮动IP—floating篇
$ openstack floating --help
Command "floating" matches:
floating ip create
floating ip delete
floating ip list
floating ip pool list
floating ip set
floating ip show
floating ip unset
创建浮动IP
# 命令格式如下:
$ openstack floating ip create
[--subnet <subnet>]
[--port <port>]
[--floating-ip-address <ip-address>]
[--fixed-ip-address <ip-address>]
[--description <description>]
[--qos-policy <qos-policy>]
[--project <project> [--project-domain <project-domain>]]
<network>
# --subnet:指定子网名称或ID
# --floating-ip-address:指定浮动IP地址
# --fixed-ip-address:指定固定IP地址和浮动IP地址进行绑定
# --description:浮动IP描述
# --qos-policy:指定浮动IP的qos策略
# --project:浮动IP所属项目名称或ID
# --project-domain:项目所属的域(名称或ID)。如果项目名称之间存在冲突,则可以使用此方法。
# network:要从中分配浮动IP的网络(名称或ID)
# 在创建浮动IP之前,我们首先要获取网络、子网、虚机等相关信息
$ openstack network list # 查看网络列表
+--------------------------------------+------------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+------------+--------------------------------------+
| 58280f28-f8bf-405d-8ae8-aa818c0eac13 | vpc-1 | f94a7745-cefe-4e79-a1f2-85f5f84fef38 |
| 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 | lvjianzhao | 0922f8c3-eecb-44b5-86c4-0628ebb3a8ea |
+--------------------------------------+------------+--------------------------------------+
$ openstack subnet list # 查看子网列表
+--------------------------------------+----------+--------------------------------------+-----------------+
| ID | Name | Network | Subnet |
+--------------------------------------+----------+--------------------------------------+-----------------+
| 0922f8c3-eecb-44b5-86c4-0628ebb3a8ea | provider | 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 | 192.168.20.0/24 |
| f94a7745-cefe-4e79-a1f2-85f5f84fef38 | vpc-1 | 58280f28-f8bf-405d-8ae8-aa818c0eac13 | 10.252.201.0/24 |
+--------------------------------------+----------+--------------------------------------+-----------------+
$ openstack server list # 查看虚机列表
+--------------------------------------+------+--------+-----------------------------------+-------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+------+--------+-----------------------------------+-------+---------+
| eb9c8988-a870-44ff-b28a-effd8f2c9622 | test | ACTIVE | vpc-1=10.252.201.14 | | m1.tiny |
| 8e0962b1-5a64-4296-a13f-91a004b3e61b | test | ACTIVE | vpc-1=10.252.201.4, 192.168.20.89 | | m1.tiny |
+--------------------------------------+------+--------+-----------------------------------+-------+---------+
# 创建浮动IP 192.168.20.91
$ openstack floating ip create \
--subnet 0922f8c3-eecb-44b5-86c4-0628ebb3a8ea \
--description '用于外网访问虚机' \
--floating-ip-address 192.168.20.91 \
--project admin \
68bf0f61-9541-4b0e-bcd8-ae048f0537f7
关联浮动IP到VM实例
# 将创建的浮动IP绑定至虚机 eb9c8988-a870-44ff-b28a-effd8f2c9622
$ openstack server add floating ip eb9c8988-a870-44ff-b28a-effd8f2c9622 192.168.20.91
# 确认已绑定
$ openstack server list
+--------------------------------------+------+--------+------------------------------------+-------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+------+--------+------------------------------------+-------+---------+
| eb9c8988-a870-44ff-b28a-effd8f2c9622 | test | ACTIVE | vpc-1=10.252.201.14, 192.168.20.91 | | m1.tiny |
| 8e0962b1-5a64-4296-a13f-91a004b3e61b | test | ACTIVE | vpc-1=10.252.201.4, 192.168.20.89 | | m1.tiny |
+--------------------------------------+------+--------+------------------------------------+-------+---------+
可以通过ssh登录到浮动IP,来确定是否绑定成功:
查看浮动IP详细信息
$ openstack floating ip show 192.168.20.91
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| created_at | 2021-03-13T07:23:51Z |
| description | 用于外网访问 |
| fixed_ip_address | 10.252.201.14 |
| floating_ip_address | 192.168.20.91 |
| floating_network_id | 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 |
| id | e79f1d04-9ad5-4ad0-a7ff-d2266077005a |
| name | 192.168.20.91 |
| port_id | d4b33b69-6414-4063-a6bf-3983796c7293 |
| project_id | 4085f844e7184e98813eab9b1ef2f350 |
| qos_policy_id | None |
| revision_number | 7 |
| router_id | 0c10714c-de37-48c4-8d23-da29d80eca3b |
| status | ACTIVE |
| subnet_id | None |
| updated_at | 2021-03-13T09:03:32Z |
+---------------------+--------------------------------------+
取消浮动IP和实例的绑定关系
# 取消关联,其中 eb9c8988-a870-44ff-b28a-effd8f2c9622 为VM实例的ID
$ openstack server remove floating ip eb9c8988-a870-44ff-b28a-effd8f2c9622 192.168.20.91
$ openstack server list # 确认已移除
+--------------------------------------+------+--------+-----------------------------------+-------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+------+--------+-----------------------------------+-------+---------+
| eb9c8988-a870-44ff-b28a-effd8f2c9622 | test | ACTIVE | vpc-1=10.252.201.14 | | m1.tiny |
| 8e0962b1-5a64-4296-a13f-91a004b3e61b | test | ACTIVE | vpc-1=10.252.201.4, 192.168.20.89 | | m1.tiny |
+--------------------------------------+------+--------+-----------------------------------+-------+---------+
查看浮动IP列表
$ openstack floating ip list
+--------------------------------------+---------------------+------------------+--------------------------------------+--------------------------------------+----------------------------------+
| ID | Floating IP Address | Fixed IP Address | Port | Floating Network | Project |
+--------------------------------------+---------------------+------------------+--------------------------------------+--------------------------------------+----------------------------------+
| 5ddb3c43-4f55-4500-86e5-84034ecb363c | 192.168.20.89 | 10.252.201.4 | cc895d66-ae86-43d9-a023-a864c1e614d9 | 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 | 4085f844e7184e98813eab9b1ef2f350 |
| e79f1d04-9ad5-4ad0-a7ff-d2266077005a | 192.168.20.91 | None | None | 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 | 4085f844e7184e98813eab9b1ef2f350 |
| fc213863-7048-4834-9a10-f27533ddcb47 | 192.168.20.34 | None | None | 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 | 4085f844e7184e98813eab9b1ef2f350 |
+--------------------------------------+---------------------+------------------+--------------------------------------+--------------------------------------+----------------------------------+
查看提供计算资源的信息
查看所有计算资源节点及状态
# 命令格式如下:
$ openstack hypervisor list
[--matching <hostname>]
[--long]
# 查看
$ openstack hypervisor list --long
+----+---------------------+-----------------+--------------+-------+------------+-------+----------------+-----------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP | State | vCPUs Used | vCPUs | Memory MB Used | Memory MB |
+----+---------------------+-----------------+--------------+-------+------------+-------+----------------+-----------+
| 1 | compute01 | QEMU | 192.168.20.3 | up | 1 | 4 | 1024 | 4095 |
| 2 | compute02 | QEMU | 192.168.20.4 | up | 1 | 4 | 1024 | 4095 |
+----+---------------------+-----------------+--------------+-------+------------+-------+----------------+-----------+
查看指定计算节点详细信息
$ openstack hypervisor show compute02
查看集群资源总计信息
# 此命令是查看的你openstack集群中所有资源的统计信息
$ openstack hypervisor stats show
+----------------------+-------+
| Field | Value |
+----------------------+-------+
| count | 2 |
| current_workload | 0 |
| disk_available_least | 94 |
| free_disk_gb | 96 |
| free_ram_mb | 6142 |
| local_gb | 98 |
| local_gb_used | 2 |
| memory_mb | 8190 |
| memory_mb_used | 2048 |
| running_vms | 2 |
| vcpus | 8 |
| vcpus_used | 2 |
+----------------------+-------+
镜像篇
参考官方文档。
创建或上传一个镜像
# 命令格式如下
openstack image create
[--id <id>]
[--store <store>]
[--container-format <container-format>]
[--disk-format <disk-format>]
[--size <size>]
[--min-disk <disk-gb>]
[--min-ram <ram-mb>]
[--location <image-url>]
[--copy-from <image-url>]
[--file <file> | --volume <volume>]
[--force]
[--checksum <checksum>]
[--protected | --unprotected]
[--public | --private | --community | --shared]
[--property <key=value> [...] ]
[--tag <tag> [...] ]
[--project <project>]
[--project-domain <project-domain>]
<image-name>
# --disk-format:模板文件格式。支持的选项包括:ami,ari,aki,vhd,vmdk,raw,qcow2,vhdx,vdi,iso和ploop。默认格式为:raw
# --location:从现有URL下载模板
# --file:从本地文件上传模板
# --volume:从卷创建模板
# --force:如果正在使用卷,则强制创建模板,只对--volume选项有用
# --protected:防止模板被删除
# --unprotected:允许模板被删除(默认)
# ---public:模板是公共可用
# --private:公共无法访问模板
# --community:模板可供社区访问
# --shared:模板可以共享
# --tag:给模板设置个标签
# 上传镜像
$ openstack image create centos-7 \
--file CentOS-7-x86_64-GenericCloud.qcow2 \
--disk-format qcow2 --container-format bare \
--public
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| checksum | ef7f109590094e37c54aead73f3cdedc |
| container_format | bare |
| created_at | 2021-03-13T13:33:01Z |
| disk_format | qcow2 |
| file | /v2/images/bd859528-887b-4953-8c36-26b19d7c1a65/file |
| id | bd859528-887b-4953-8c36-26b19d7c1a65 |
| min_disk | 0 |
| min_ram | 0 |
| name | centos-7 |
| owner | 4085f844e7184e98813eab9b1ef2f350 |
| protected | False |
| schema | /v2/schemas/image |
| size | 858783744 |
| status | active |
| tags | |
| updated_at | 2021-03-13T13:33:05Z |
| virtual_size | None |
| visibility | public |
+------------------+------------------------------------------------------+
查看镜像列表
$ openstack image list --long
+--------------------------------------+----------+-------------+------------------+-----------+----------------------------------+--------+------------+-----------+----------------------------------+------+
| ID | Name | Disk Format | Container Format | Size | Checksum | Status | Visibility | Protected | Project | Tags |
+--------------------------------------+----------+-------------+------------------+-----------+----------------------------------+--------+------------+-----------+----------------------------------+------+
| bd859528-887b-4953-8c36-26b19d7c1a65 | centos 7 | qcow2 | bare | 858783744 | ef7f109590094e37c54aead73f3cdedc | active | public | False | 4085f844e7184e98813eab9b1ef2f350 | |
| effd9c04-b22a-4a9e-8208-fa6f421aa048 | cirros | qcow2 | bare | 12716032 | 443b7623e27ecf03dc9e01ee93f67afe | active | public | False | 4085f844e7184e98813eab9b1ef2f350 | |
+--------------------------------------+----------+-------------+------------------+-----------+----------------------------------+--------+------------+-----------+----------------------------------+------+
删除镜像
$ openstack image delete bd859528-887b-4953-8c36-26b19d7c1a65
虚机篇
创建一个虚机
1、查看flavor
$ openstack flavor list
+--------------------------------------+---------+------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+---------+------+------+-----------+-------+-----------+
| 00f72b48-035c-439f-b683-caf1eac67928 | centos7 | 2048 | 20 | 0 | 2 | True |
| fb5448ae-f946-4c19-822b-12d1ec6a7fe2 | m1.tiny | 512 | 1 | 0 | 1 | True |
+--------------------------------------+---------+------+------+-----------+-------+-----------+
2、查看image
$ openstack image list
+--------------------------------------+----------+--------+
| ID | Name | Status |
+--------------------------------------+----------+--------+
| bd859528-887b-4953-8c36-26b19d7c1a65 | centos-7 | active |
| effd9c04-b22a-4a9e-8208-fa6f421aa048 | cirros | active |
+--------------------------------------+----------+--------++--------------------------------------+----------+--------+
3、查看网络ID
$ openstack network list --long
+--------------------------------------+------------+--------+----------------------------------+-------+--------+--------------------------------------+--------------+-------------+--------------------+------+
| ID | Name | Status | Project | State | Shared | Subnets | Network Type | Router Type | Availability Zones | Tags |
+--------------------------------------+------------+--------+----------------------------------+-------+--------+--------------------------------------+--------------+-------------+--------------------+------+
| 58280f28-f8bf-405d-8ae8-aa818c0eac13 | vpc-1 | ACTIVE | 4085f844e7184e98813eab9b1ef2f350 | UP | False | f94a7745-cefe-4e79-a1f2-85f5f84fef38 | vxlan | Internal | nova | |
| 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 | lvjianzhao | ACTIVE | 4085f844e7184e98813eab9b1ef2f350 | UP | True | 0922f8c3-eecb-44b5-86c4-0628ebb3a8ea | flat | External | nova | |
+--------------------------------------+------------+--------+----------------------------------+-------+--------+--------------------------------------+--------------+-------------+--------------------+------+
4、查看安全组
$ openstack security group list
+--------------------------------------+---------+-------------+----------------------------------+
| ID | Name | Description | Project |
+--------------------------------------+---------+-------------+----------------------------------+
| 1913dc1c-c7ab-44b8-a181-052426b5809b | default | 缺省安全组 | |
| 5004766b-690f-4690-9963-168185a030c2 | default | 缺省安全组 | 4085f844e7184e98813eab9b1ef2f350 |
| 5e7c457e-bddc-49f2-96dc-2c7cb3246d7d | default | 缺省安全组 | 9fa2d397ad714a0fb13772f3709dc74c |
+--------------------------------------+---------+-------------+----------------------------------+
# 上面给出了项目id,所以还需要确认是哪个项目的安全组
$ openstack project list # 查看项目ID
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 291f8ffed66a452e838e48cb2eeecc19 | demo |
| 4085f844e7184e98813eab9b1ef2f350 | admin |
| 9fa2d397ad714a0fb13772f3709dc74c | service |
+----------------------------------+---------+
5、获取keypair
$ openstack keypair list
+-------+-------------------------------------------------+
| Name | Fingerprint |
+-------+-------------------------------------------------+
| mykey | a2:96:c9:cb:72:f8:2b:95:22:95:c1:4f:34:be:35:d4 |
+-------+-------------------------------------------------+
6、获取compute的主机名称和zone名称
$ openstack compute service list
+----+------------------+------------+----------+---------+-------+----------------------------+
| ID | Binary | Host | Zone | Status | State | Updated At |
+----+------------------+------------+----------+---------+-------+----------------------------+
| 1 | nova-scheduler | controller | internal | enabled | up | 2021-03-13T13:44:59.000000 |
| 2 | nova-consoleauth | controller | internal | enabled | up | 2021-03-13T13:44:57.000000 |
| 3 | nova-conductor | controller | internal | enabled | up | 2021-03-13T13:45:01.000000 |
| 8 | nova-compute | compute01 | test | enabled | up | 2021-03-13T13:45:01.000000 |
| 9 | nova-compute | compute02 | nova | enabled | up | 2021-03-13T13:45:02.000000 |
+----+------------------+------------+----------+---------+-------+----------------------------+
7、创建虚机
当上面的信息都获取到后,我们就可以开始创建虚机了,如下:
# 下面是基于镜像创建虚机,虚机磁盘将保存在计算节点本地,后期迁移不方便
$ nova boot --flavor centos7 \ # 指定计算方案
--image centos-7 \ # 指定镜像名称
--nic net-id=58280f28-f8bf-405d-8ae8-aa818c0eac13 \ # 指定网络ID
--security-groups 5004766b-690f-4690-9963-168185a030c2 \ # 指定安全组ID
--availability-zone nova:compute01 \ # 指定可用域,同时可以指定计算节点
--key-name mykey \ # 指定注入的秘钥对
Centos-7-t2 # 虚机名称
# 下面是基于卷创建虚机,虚机磁盘将保存在cinder后端存储上,迁移方便
# 指定镜像创建卷centos-7-volume,size单位为GB
$ openstack volume create --size 15 --image bd859528-887b-4953-8c36-26b19d7c1a65 centos-7-volume
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2021-03-13T15:12:58.000000 |
| description | None |
| encrypted | False |
| id | 7cd0e240-cadc-44d8-bd5b-e5b4099bdd78 |
| migration_status | None |
| multiattach | False |
| name | centos-7-volume |
| properties | |
| replication_status | None |
| size | 15 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| type | None |
| updated_at | None |
| user_id | c883cc6a37cc4a0db55698078657b4ea |
+---------------------+--------------------------------------+
$ openstack volume list # 查看卷ID
+--------------------------------------+-----------------+-----------+------+-------------------------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+-----------------+-----------+------+-------------------------------+
| 7cd0e240-cadc-44d8-bd5b-e5b4099bdd78 | centos-7-volume | available | 15 | |
| 42e497ae-d3cd-44e0-a3b4-7c68377f894c | | in-use | 1 | Attached to test on /dev/vda |
+--------------------------------------+-----------------+-----------+------+-------------------------------+
# 基于卷启动虚机
$ nova boot --flavor centos7 \
--boot-volume 7cd0e240-cadc-44d8-bd5b-e5b4099bdd78 \
--nic net-id=58280f28-f8bf-405d-8ae8-aa818c0eac13 \
--security-groups 5004766b-690f-4690-9963-168185a030c2 \
--availability-zone nova:compute01 \
--key-name mykey \
Centos-7-t3
查看虚机详细信息
$ openstack server list # 也可以使用 nova list 指令
+--------------------------------------+-------------+--------+------------------------------------+----------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------------+--------+------------------------------------+----------+---------+
| 36e74282-0a86-4bf1-8b03-18c071aa7f4f | Centos-7-t2 | ACTIVE | vpc-1=10.252.201.19, 192.168.20.89 | centos-7 | centos7 |
| 8e0962b1-5a64-4296-a13f-91a004b3e61b | test | ACTIVE | vpc-1=10.252.201.4 | | m1.tiny |
+--------------------------------------+-------------+--------+------------------------------------+----------+---------+
# 查看虚机详细信息
$ openstack server show 36e74282-0a86-4bf1-8b03-18c071aa7f4f
+-------------------------------------+----------------------------------------------------------+
| Field | Value |
+-------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | test |
| OS-EXT-SRV-ATTR:host | compute01 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | compute01 |
| OS-EXT-SRV-ATTR:instance_name | instance-00000009 |
| OS-EXT-STS:power_state | Running |
| OS-EXT-STS:task_state | None |
| OS-EXT-STS:vm_state | active |
| OS-SRV-USG:launched_at | 2021-03-13T14:26:21.000000 |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | vpc-1=10.252.201.19, 192.168.20.89 |
| config_drive | |
| created | 2021-03-13T14:26:05Z |
| flavor | centos7 (00f72b48-035c-439f-b683-caf1eac67928) |
| hostId | 8f5ca7007a077b106dcb5d0695a2dc87bf1f72743770663b4c1cebfe |
| id | 36e74282-0a86-4bf1-8b03-18c071aa7f4f |
| image | centos-7 (bd859528-887b-4953-8c36-26b19d7c1a65) |
| key_name | mykey |
| name | Centos-7-t2 |
| progress | 0 |
| project_id | 4085f844e7184e98813eab9b1ef2f350 |
| properties | |
| security_groups | name='default' |
| status | ACTIVE |
| updated | 2021-03-13T14:26:22Z |
| user_id | c883cc6a37cc4a0db55698078657b4ea |
| volumes_attached | |
+-------------------------------------+----------------------------------------------------------+
删除虚机
# 指定虚机的ID即可
$ openstack server delete 36e74282-0a86-4bf1-8b03-18c071aa7f4f
查询网络可用IP
列出网络的IP使用情况
$ openstack ip availability list
+--------------------------------------+--------------+-----------+----------+
| Network ID | Network Name | Total IPs | Used IPs |
+--------------------------------------+--------------+-----------+----------+
| 58280f28-f8bf-405d-8ae8-aa818c0eac13 | vpc-1 | 253 | 3 |
| 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 | lvjianzhao | 225 | 3 |
+--------------------------------------+--------------+-----------+----------+
查看可用IP的详细信息
$ openstack ip availability show 68bf0f61-9541-4b0e-bcd8-ae048f0537f7
+------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
| id | 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 |
| name | None |
| network_id | 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 |
| network_name | lvjianzhao |
| project_id | 4085f844e7184e98813eab9b1ef2f350 |
| subnet_ip_availability | cidr='192.168.20.0/24', ip_version='4', subnet_id='0922f8c3-eecb-44b5-86c4-0628ebb3a8ea', subnet_name='provider', total_ips='225', used_ips='3' |
| total_ips | 225 |
| used_ips | 3 |
+------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
查看已分配的IP
$ mysql -uroot -p123.com -e \
> 'SELECT * FROM neutron.ipamallocations WHERE ip_address LIKE "10.252.201.%"'
+----------------+-----------+--------------------------------------+
| ip_address | status | ipam_subnet_id |
+----------------+-----------+--------------------------------------+
| 10.252.201.1 | ALLOCATED | 34c6d08a-d8e1-48de-b8b3-c75e7f0d1cb1 |
| 10.252.201.160 | ALLOCATED | 34c6d08a-d8e1-48de-b8b3-c75e7f0d1cb1 |
| 10.252.201.2 | ALLOCATED | 34c6d08a-d8e1-48de-b8b3-c75e7f0d1cb1 |
| 10.252.201.4 | ALLOCATED | 34c6d08a-d8e1-48de-b8b3-c75e7f0d1cb1 |
+----------------+-----------+--------------------------------------+
给虚机分配固定IP
# 查询网络ID
$ openstack network list
+--------------------------------------+------------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+------------+--------------------------------------+
| 58280f28-f8bf-405d-8ae8-aa818c0eac13 | vpc-1 | f94a7745-cefe-4e79-a1f2-85f5f84fef38 |
| 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 | lvjianzhao | 0922f8c3-eecb-44b5-86c4-0628ebb3a8ea |
+--------------------------------------+------------+--------------------------------------+
# 查询虚机ID
$ nova list
+--------------------------------------+------+--------+------------+-------------+------------------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+------+--------+------------+-------------+------------------------------------+
| 8e0962b1-5a64-4296-a13f-91a004b3e61b | test | ACTIVE | - | Running | vpc-1=10.252.201.4 |
+--------------------------------------+------+--------+------------+-------------+------------------------------------+
# 分配固定IP给虚机,其中 --fixed-ip-address 指定IP地址,为可选项,后面以此指定虚机ID、网络ID
$ openstack server add fixed ip --fixed-ip-address 10.252.201.160 \
8e0962b1-5a64-4296-a13f-91a004b3e61b 58280f28-f8bf-405d-8ae8-aa818c0eac13
# 确认IP已分配(自行到虚机里配置IP,以便生效)
$ nova list
+--------------------------------------+------+--------+------------+-------------+------------------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+------+--------+------------+-------------+------------------------------------+
| 8e0962b1-5a64-4296-a13f-91a004b3e61b | test | ACTIVE | - | Running | vpc-1=10.252.201.4, 10.252.201.160 |
+--------------------------------------+------+--------+------------+-------------+------------------------------------+
秘钥对篇
创建秘钥对
# 生成秘钥
$ ssh-keygen -t rsa -q -N ""
# 创建秘钥对
$ openstack keypair create \
> --public-key ~/.ssh/id_rsa.pub \
> mykey2
+-------------+-------------------------------------------------+
| Field | Value |
+-------------+-------------------------------------------------+
| fingerprint | f2:4f:98:1a:72:9b:54:a1:ef:9e:a0:02:8f:30:7a:73 |
| name | mykey2 |
| user_id | c883cc6a37cc4a0db55698078657b4ea |
+-------------+-------------------------------------------------+
创建秘钥对后,即可在创建虚机时,通过--key-name
指定秘钥对名称mykey2
,即可实现免密登录到虚机。
查看秘钥对列表
$ openstack keypair list
+--------+-------------------------------------------------+
| Name | Fingerprint |
+--------+-------------------------------------------------+
| mykey | a2:96:c9:cb:72:f8:2b:95:22:95:c1:4f:34:be:35:d4 |
| mykey2 | f2:4f:98:1a:72:9b:54:a1:ef:9e:a0:02:8f:30:7a:73 |
+--------+-------------------------------------------------+
查看创建的秘钥对详细信息
# 查看秘钥对创建时间等信息
$ openstack keypair show mykey2
+-------------+-------------------------------------------------+
| Field | Value |
+-------------+-------------------------------------------------+
| created_at | 2021-03-14T00:36:15.000000 |
| deleted | False |
| deleted_at | None |
| fingerprint | f2:4f:98:1a:72:9b:54:a1:ef:9e:a0:02:8f:30:7a:73 |
| id | 2 |
| name | mykey2 |
| updated_at | None |
| user_id | c883cc6a37cc4a0db55698078657b4ea |
+-------------+-------------------------------------------------+
# 查看秘钥对中的公钥内容
$ openstack keypair show --public-key mykey2
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCfxGTiCqupoHOyOidRJYDrI5JtzP8hLOLv4M0+2MUDCK7X9EgTf8NXaapyrZ8M7U5kMXcij3Vf48Hk2uLJheJldx7XAZki6WUDuBGhv/vd/XL10mvJaoRXoeWskkVHdIOQaICFg4F2Q50fdixCle4OP4PSOHBhrcYTegzIikZlSjlvBo/wpM8Zqp52mJtTPtlwi0ZHGop0SUeILknXCnpR47i1irCrmJ7yBgtjThMGYd/avobqLrA8NsM6X46j7rCGegOPd5MKyGfTj20IiwFL46HMyj0AVoz0S3VctiE8DmOObtX/ob9nl9huniMBuT4XuUCjz+MOtqk9GQ2Ajh0J root@compute01
资源配额篇
# 命令格式:
openstack limits show
--absolute | --rate
[--reserved]
[--project <project>]
[--domain <domain>]
# --absolute:显示绝对限制
# --rate:显示速率限制
# --reserved:包括预定数(仅适用于 --absolute)
# --project:显示指定项目
# --domain:项目所属的域(仅适用于 --absolute)
# 查看admin项目限制及目前使用量
$ openstack limits show --absolute --project admin
+--------------------------+-------+
| Name | Value |
+--------------------------+-------+
| maxServerMeta | 128 |
| maxTotalInstances | 10 |
| maxPersonality | 5 |
| totalServerGroupsUsed | 0 |
| maxImageMeta | 128 |
| maxPersonalitySize | 10240 |
| maxTotalRAMSize | 51200 |
| maxServerGroups | 10 |
| maxSecurityGroupRules | 20 |
| maxTotalKeypairs | 100 |
| totalCoresUsed | 1 |
| totalRAMUsed | 512 |
| maxSecurityGroups | 10 |
| totalFloatingIpsUsed | 0 |
| totalInstancesUsed | 1 |
| maxServerGroupMembers | 10 |
| maxTotalFloatingIps | 10 |
| totalSecurityGroupsUsed | 1 |
| maxTotalCores | 20 |
| totalSnapshotsUsed | 2 |
| maxTotalBackups | 10 |
| maxTotalVolumeGigabytes | 1000 |
| maxTotalSnapshots | 10 |
| maxTotalBackupGigabytes | 1000 |
| totalBackupGigabytesUsed | 0 |
| maxTotalVolumes | 10 |
| totalVolumesUsed | 2 |
| totalBackupsUsed | 0 |
| totalGigabytesUsed | 4 |
+--------------------------+-------+
网络篇
创建网络
创建的网络是2层网络。网络有两种类型,项目网络和提供商网络。项目网络是完全隔离的,不会与其他项目共享。提供商网络映射到数据中心中的现有物理网络,并为服务器和其他资源提供外部网络访问。只有OpenStack管理员才能创建提供商网络。可以通过路由器连接网络。
# 创建网络的命令格式如下:
openstack network create
[--project <project> [--project-domain <project-domain>]]
[--enable | --disable]
[--share | --no-share]
[--description <description>]
[--mtu <mtu>]
[--availability-zone-hint <availability-zone>]
[--enable-port-security | --disable-port-security]
[--external [--default | --no-default] | --internal]
[--provider-network-type <provider-network-type>]
[--provider-physical-network <provider-physical-network>]
[--provider-segment <provider-segment>]
[--qos-policy <qos-policy>]
[--transparent-vlan | --no-transparent-vlan]
[--tag <tag> | --no-tag]
<name>
# --project:指定网络所属项目
# --project-domain:如果项目名称存在冲突,可以使用此选项指定项目所在域
# --enable:启用网络(默认)
# --disable:禁用网络
# --share:在项目之间共享网络
# --no-share:不要在项目之间共享网络(默认)
# --description:设置网络描述
# --mtu:设置网络MTU
# --availability-zone-hint:在其中创建此网络的可用区
# --enable-port-security:默认情况下,为此网络上创建的端口启用端口安全性(默认)
# --disable-port-security:默认情况下,禁用此网络上创建的端口的端口安全性
# --external:将此网络设置为外部网络(需要外部网络扩展)
# --internal:将此网络设置为内部网络(默认)
# --default:指定是否将此网络用作默认的外部网络
# --no-default:不要将网络用作默认的外部网络(默认)
# --provider-network-type:实现虚拟网络的物理机制,默认为vxlan,支持的选项包括:flat,geneve,gre,local,vlan,vxlan
# --provider-physical-network:在其上实现虚拟网络的物理网络的名称,和配置文件/etc/neutron/plugins/ml2/ml2_conf.ini中的flat_networks值对应
# --provider-segment:VLAN网络的VLAN ID或GENEVE / GRE / VXLAN网络的隧道ID
# --qos-policy:附加到此网络的Qos策略(名称或ID)
# --transparent-vlan:使网络vlan透明
# --no-transparent-vlan:不要使网络vlan透明
# --tag:要添加到网络的标签
# --no-tag:没有与网络关联的标签
# 给demo项目创建demo-network网络
$ openstack network create \
--project demo \
--description "用于demo项目使用的二层网络" \
--internal demo-network
修改网络
# 只需将create改为set即可,其他选项基本同创建网络一致
openstack network set
[--name <name>]
[--enable | --disable]
[--share | --no-share]
[--description <description>]
[--mtu <mtu>]
[--enable-port-security | --disable-port-security]
[--external [--default | --no-default] | --internal]
[--provider-network-type <provider-network-type>]
[--provider-physical-network <provider-physical-network>]
[--provider-segment <provider-segment>]
[--qos-policy <qos-policy> | --no-qos-policy]
[--tag <tag>] [--no-tag]
<network>
# 查看网络列表
$ openstack network list --long
+--------------------------------------+--------------+--------+----------------------------------+-------+--------+----------------------------------------------------------------------------+--------------+-------------+--------------------+------+
| ID | Name | Status | Project | State | Shared | Subnets | Network Type | Router Type | Availability Zones | Tags |
+--------------------------------------+--------------+--------+----------------------------------+-------+--------+----------------------------------------------------------------------------+--------------+-------------+--------------------+------+
| 3f34b862-07e6-420b-ae5f-c924d01666a8 | demo-network | ACTIVE | 291f8ffed66a452e838e48cb2eeecc19 | UP | False | 89034afe-aa1d-477a-83e5-62083900e6b3 | vxlan | Internal | nova | |
| 58280f28-f8bf-405d-8ae8-aa818c0eac13 | vpc-1 | ACTIVE | 4085f844e7184e98813eab9b1ef2f350 | UP | False | f94a7745-cefe-4e79-a1f2-85f5f84fef38 | vxlan | Internal | nova | |
| 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 | lvjianzhao | ACTIVE | 4085f844e7184e98813eab9b1ef2f350 | UP | True | 0922f8c3-eecb-44b5-86c4-0628ebb3a8ea | flat | External | nova | |
+--------------------------------------+--------------+--------+----------------------------------+-------+--------+----------------------------------------------------------------------------+--------------+-------------+--------------------+------+
[
# 将一个内部网络设置为外部网络
$ openstack network set --external 3f34b862-07e6-420b-ae5f-c924d01666a8
查看网络
# 查看网络列表
$ openstack network list
+--------------------------------------+--------------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+--------------+--------------------------------------+
| 3f34b862-07e6-420b-ae5f-c924d01666a8 | demo-network | 89034afe-aa1d-477a-83e5-62083900e6b3 |
| 58280f28-f8bf-405d-8ae8-aa818c0eac13 | vpc-1 | f94a7745-cefe-4e79-a1f2-85f5f84fef38 |
| 68bf0f61-9541-4b0e-bcd8-ae048f0537f7 | lvjianzhao | 0922f8c3-eecb-44b5-86c4-0628ebb3a8ea |
+--------------------------------------+--------------+--------------------------------------+
# 查看网络详细信息
$ openstack network show 3f34b862-07e6-420b-ae5f-c924d01666a8
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | nova |
| created_at | 2021-03-14T01:59:35Z |
| description | 用于demo项目使用的二层网络 |
| dns_domain | None |
| id | 3f34b862-07e6-420b-ae5f-c924d01666a8 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | None |
| is_vlan_transparent | None |
| mtu | 1450 |
| name | demo-network |
| port_security_enabled | True |
| project_id | 291f8ffed66a452e838e48cb2eeecc19 |
| provider:network_type | vxlan |
| provider:physical_network | None |
| provider:segmentation_id | 99 |
| qos_policy_id | None |
| revision_number | 5 |
| router:external | Internal |
| segments | None |
| shared | False |
| status | ACTIVE |
| subnets | 89034afe-aa1d-477a-83e5-62083900e6b3 |
| tags | |
| updated_at | 2021-03-14T02:26:47Z |
+---------------------------+--------------------------------------+
项目管理篇
创建项目
# 命令格式如下
openstack project create
[--domain <domain>]
[--parent <project>]
[--description <description>]
[--enable | --disable]
[--property <key=value>]
[--or-show]
<name>
# --domain:指定项目所属域
# --parent:指定父项目
# --description:项目描述信息
# --enable:启用项目(默认)
# --disable:禁用项目
# --or-show:如果创建的项目已存在,请返回现有项目的详细信息,并且不要输出创建失败的信息
# 创建项目 demo-2
$ openstack project create \
--domain default \
--description "用于测试人员使用" \
--or-show demo-2
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | 用于测试人员使用 |
| domain_id | default |
| enabled | True |
| id | 457f33cd732b4f17936d45302f071d87 |
| is_domain | False |
| name | demo-2 |
| parent_id | default |
| tags | [] |
+-------------+----------------------------------+
查看项目信息
# 命令格式如下
openstack project list
[--domain <domain>]
[--user <user>]
[--my-projects]
[--long]
[--sort <key>[:<direction>,<key>:<direction>,..]]
# 查看项目列表
$ openstack project list --long
+----------------------------------+---------+-----------+-----------------------------------------------+---------+
| ID | Name | Domain ID | Description | Enabled |
+----------------------------------+---------+-----------+-----------------------------------------------+---------+
| 291f8ffed66a452e838e48cb2eeecc19 | demo | default | Demo Project | True |
| 4085f844e7184e98813eab9b1ef2f350 | admin | default | Bootstrap project for initializing the cloud. | True |
| 457f33cd732b4f17936d45302f071d87 | demo-2 | default | 用于测试人员使用 | True |
| 9fa2d397ad714a0fb13772f3709dc74c | service | default | Service Project | True |
+----------------------------------+---------+-----------+-----------------------------------------------+---------+
# 查看指定项目的详细信息
$ openstack project show 457f33cd732b4f17936d45302f071d87
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | 用于测试人员使用 |
| domain_id | default |
| enabled | True |
| id | 457f33cd732b4f17936d45302f071d87 |
| is_domain | False |
| name | demo-2 |
| parent_id | default |
| tags | [] |
+-------------+----------------------------------+
修改项目信息
# 命令格式如下:
openstack project set
[--name <name>]
[--domain <domain>]
[--description <description>]
[--enable | --disable]
[--property <key=value>]
<project>
清除项目内所有资源
# 命令格式如下:
openstack project purge
[--dry-run]
[--keep-project]
[--auth-project | --project <project>]
[--project-domain <project-domain>]
# --dry-run:试运行指令
# --keep-project:清理项目内资源,但不删除项目
# --auth-project:删除用于认证的项目资源
# --project:指定要清理的项目
# --project-domain:项目所属域,如果项目名称之间存在冲突,则可以使用此方法。
# 查看项目列表
$ openstack project list
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 291f8ffed66a452e838e48cb2eeecc19 | demo |
| 4085f844e7184e98813eab9b1ef2f350 | admin |
| 457f33cd732b4f17936d45302f071d87 | demo-2 |
| 9fa2d397ad714a0fb13772f3709dc74c | service |
+----------------------------------+---------+
# 试运行指令,只会列出将要删除的资源对象
$ openstack project purge --dry-run \
--project 457f33cd732b4f17936d45302f071d87 \
--project-domain default
Deleting server : e3bcff53-7328-4575-bb96-620892291e24
Deleting volume : 8b0c5c39-f415-47f8-ab1a-731e80362655
Deleting project: 457f33cd732b4f17936d45302f071d87
# 删除项目中的所有资源
$ openstack project purge \
--project 457f33cd732b4f17936d45302f071d87 \
--project-domain default
配额篇
参考:官方文档。
查看项目默认配额
# 命令格式如下:
openstack quota show
[--default]
[<project>]
# --default:查看项目默认配额
$ openstack quota show admin --default
+----------------------+----------------------------------+
| Field | Value |
+----------------------+----------------------------------+
| backup-gigabytes | 1000 |
| backups | 10 |
| cores | 20 |
| fixed-ips | -1 |
| floating-ips | 50 |
| gigabytes | 1000 |
| groups | 10 |
| health_monitors | None |
| injected-file-size | 10240 |
| injected-files | 5 |
| injected-path-size | 255 |
| instances | 10 |
| key-pairs | 100 |
| l7_policies | None |
| listeners | None |
| load_balancers | None |
| location | None |
| name | None |
| networks | 100 |
| per-volume-gigabytes | -1 |
| pools | None |
| ports | 500 |
| project | 4085f844e7184e98813eab9b1ef2f350 |
| project_name | admin |
| properties | 128 |
| ram | 51200 |
| rbac_policies | 10 |
| routers | 10 |
| secgroup-rules | 100 |
| secgroups | 10 |
| server-group-members | 10 |
| server-groups | 10 |
| snapshots | 10 |
| subnet_pools | -1 |
| subnets | 100 |
| volumes | 10 |
+----------------------+----------------------------------+
设置项目配额
# 命令格式如下
openstack quota set
# Compute settings
[--cores <num-cores>]
[--fixed-ips <num-fixed-ips>]
[--floating-ips <num-floating-ips>]
[--injected-file-size <injected-file-bytes>]
[--injected-files <num-injected-files>]
[--instances <num-instances>]
[--key-pairs <num-key-pairs>]
[--properties <num-properties>]
[--ram <ram-mb>]
[--server-groups <num-server-groups>]
[--server-group-members <num-server-group-members>]
# Block Storage settings
[--backups <new-backups>]
[--backup-gigabytes <new-backup-gigabytes>]
[--gigabytes <new-gigabytes>]
[--per-volume-gigabytes <new-per-volume-gigabytes>]
[--snapshots <new-snapshots>]
[--volumes <new-volumes>]
[--volume-type <volume-type>]
# Network settings
[--floating-ips <num-floatingips>]
[--secgroup-rules <num-security-group-rules>]
[--secgroups <num-security-groups>]
[--networks <num-networks>]
[--subnets <num-subnets>]
[--ports <num-ports>]
[--routers <num-routers>]
[--rbac-policies <num-rbac-policies>]
[--vips <num-vips>]
[--subnetpools <num-subnetpools>]
[--members <num-members>]
[--health-monitors <num-health-monitors>]
<project>
# 设置admin项目的配额:20个实例、40个vcpus、100G内存、100个浮动IP、20个安全组、20个卷、2000GB卷存储空间
$ openstack quota set \
--instances 20 \
--cores 40 \
--ram 102400 \
--floating-ips 100 \
--secgroups 20 \
--volumes 20 \
--gigabytes 20000 \
admin
查看项目中非默认的配额
# 命令格式如下:
$ openstack quota list
--compute | --network | --volume
# 查看计算资源配额
$ openstack quota list --compute
+----------------------------------+-------+-----------+----------------+-----------------------------+--------------------------+-----------+-----------+----------------+--------+---------------+----------------------+
| Project ID | Cores | Fixed IPs | Injected Files | Injected File Content Bytes | Injected File Path Bytes | Instances | Key Pairs | Metadata Items | Ram | Server Groups | Server Group Members |
+----------------------------------+-------+-----------+----------------+-----------------------------+--------------------------+-----------+-----------+----------------+--------+---------------+----------------------+
| 4085f844e7184e98813eab9b1ef2f350 | 40 | -1 | 5 | 10240 | 255 | 20 | 100 | 128 | 102400 | 10 | 10 |
+----------------------------------+-------+-----------+----------------+-----------------------------+--------------------------+-----------+-----------+----------------+--------+---------------+----------------------+