身份验证

export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3

项目管理

帮助信息

[root@controller ~]# openstack project -h
Command "project" matches:
  project create
  project delete
  project list
  project purge
  project set
  project show

项目创建

执行openstack project create cec命令创建一个名为cec的项目

[root@controller ~]# openstack project create cec
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description |                                  |
| domain_id   | default                          |
| enabled     | True                             |
| id          | d4bc3306513e4ad29a909a48a2d99050 |
| is_domain   | False                            |
| name        | cec                              |
| parent_id   | default                          |
| tags        | []                               |
+-------------+----------------------------------+

用户管理

帮助信息

[root@controller ~]# openstack user -h
Command "user" matches:
  user create
  user delete
  user list
  user password set
  user set
  user show

用户创建

执行openstack user create --domain default --password openstack2025 zhangsan命令创建一个名字为zhangsan密码为openstack2025的用户。

[root@controller ~]# openstack user create --domain default --password openstack2025 zhangsan
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | fdb63599689244748bc10f696cef95ef |
| name                | zhangsan                         |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

角色管理

帮助信息

[root@controller ~]# openstack role -h
Command "role" matches:
  role add
  role assignment list
  role create
  role delete
  role list
  role remove
  role set
  role show

列出所有角色

执行openstack role list命令查看所有角色

[root@controller ~]# openstack role list
+----------------------------------+--------+
| ID                               | Name   |
+----------------------------------+--------+
| 5daaa049f2074497b015fc8e47bbe847 | reader |
| 654636054f124ade812e3aac84059880 | user   |
| 9feed25c0a2a4fcaae9eefd1d1ec872e | member |
| e55c05c671b445c6bab35dfaf337433d | admin  |
+----------------------------------+--------+

用户授权

执行openstack role add --project cec --user zhangsan admin命令,把用户zhangsan划分到cec项目中并且给予admin权限。这条命令正常是无回显的。

[root@controller ~]# openstack role add --project cec --user zhangsan admin

网络管理

帮助信息

[root@controller ~]# openstack network -h
Command "network" matches:
  network agent add network
  network agent add router
  network agent delete
  network agent list
  network agent remove network
  network agent remove router
  network agent set
  network agent show
  network auto allocated topology create
  network auto allocated topology delete
  network create
  network delete
......

这个有很多,不说细写,用到的时候再去学习也不是很晚。

列出网络

通过命令openstack network list列出网络

[root@controller ~]# openstack network list
+--------------------------------------+------------+--------------------------------------+
| ID                                   | Name       | Subnets                              |
+--------------------------------------+------------+--------------------------------------+
| 0a89e120-408a-4495-a6b5-6bae36b45087 | test1      | 42a42a5c-7c7f-42b6-8335-0bd4ff9c5b7a |
| 5b0ca4e2-9cb7-40ff-8126-8f6871366ea8 | net_vmnet1 | acefb75a-c3e4-41f8-b411-756ca7145099 |
| dd604587-3542-409b-9ca8-eed06840fb55 | provider   | 69611b38-36b5-4e98-b47e-949c2137dbe1 |
+--------------------------------------+------------+--------------------------------------+

详细信息

通过命令openstack network show {网络名称}即可列出他的详细信息

创建网络

通过命令openstack network create --share --external --provider-network-type flat public --provider-physical-network provider 来创建flat一个网络,参数具体含义如下

  • --share 共享的
  • --external 外部的
  • --provider-network-type flat 指定网络类型为flat
  • public 网络名称
  • --provider-physical-network provider 指定物理网络名称为provider

其中provider是在neutron的ml2模块中指定的。
其他参数可以参考 openstack network create -h命令给的帮助

[root@controller ~]# openstack network create -h
usage: openstack network create [-h] [-f {json,shell,table,value,yaml}]
                                [-c COLUMN] [--max-width <integer>]
                                [--fit-width] [--print-empty] [--noindent]
                                [--prefix PREFIX] [--share | --no-share]
                                [--enable | --disable] [--project <project>]
                                [--description <description>] [--mtu <mtu>]
                                [--project-domain <project-domain>]
                                [--availability-zone-hint <availability-zone>]
                                [--enable-port-security | --disable-port-security]
                                [--external | --internal]
                                [--default | --no-default]
                                [--qos-policy <qos-policy>]
                                [--transparent-vlan | --no-transparent-vlan]
                                [--provider-network-type <provider-network-type>]
                                [--provider-physical-network <provider-physical-network>]
                                [--provider-segment <provider-segment>]
                                [--dns-domain <dns-domain>]
                                [--tag <tag> | --no-tag]
                                <name>

创建vpc网络
openstack network create --project cec --provider-network-type vxlan cec-vpc

创建子网

参考命令如下

# 命令如下
 openstack subnet create cec-subnet --network cec-vpc --subnet-range 172.16.2.0/24 --allocation-pool start=172.16.2.1,end=172.16.2.253 --gateway 172.16.2.254 --dns-nameserver 223.5.5.5
# 注解如下
openstack subnet create --network 指定网络名称 --allocation-pool start=分配起始ip,end=结束分配ip --dns-nameserver 分配的dns主机 --gateway 网关 --subnet-range 网络地址 名字

创建路由

执行openstack router create --project cec cec-router命令在cec项目中创建一个路由

关联路由出口网络

执行openstack router set cec-router --external-gateway provider命令设置cec-router路由的外部出口接口为provider网络,执行下面命令成功是无回显的。这条命令是不支持--project指定项目的,如果多个项目中都有这个名字,可以使用openstack project set <project_name>来切换项目,或者更新openrc验证脚本的OS_PROJECT_NAME参数

关联路由内部网络

执行openstack router add subnet cec-router cec-subnet关联路由的内部网络,这条命令是不支持--project指定项目的,如果多个项目中都有这个名字,可以更新openrc验证脚本的OS_PROJECT_NAME参数。

安全组管理

安全组列出

通过openstack security group list命令列出所有安全组

安全组创建

通过openstack security group create --project cec cec-sg命令在cec项目中创建一个名为cec-sg的安全组

安全组规则创建

通过openstack security group rule create --project cec --proto tcp --dst-port 22:22 cec-sg命令来放行cec项目中的cec-sg安全组的22端口

虚机管理

规格列出

执行openstack flavor list命令列出实例规格

[root@controller ~]# openstack flavor list
+----+---------+-----+------+-----------+-------+-----------+
| ID | Name    | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+---------+-----+------+-----------+-------+-----------+
| 0  | m1.nano |  64 |    1 |         0 |     1 | True      |
+----+---------+-----+------+-----------+-------+-----------+

规格创建

通过命令openstack flavor create n1.nano --vcpus 1 --ram 128 --disk 1创建一个名字为n1.nano cpu数量为1 内存为128m 磁盘为1G的实例规格

[root@controller ~]# openstack flavor create n1.nano --vcpus 1 --ram 128 --disk 1
+----------------------------+--------------------------------------+
| Field                      | Value                                |
+----------------------------+--------------------------------------+
| OS-FLV-DISABLED:disabled   | False                                |
| OS-FLV-EXT-DATA:ephemeral  | 0                                    |
| disk                       | 1                                    |
| id                         | bf316702-0183-46ea-8a6c-5a8678f17d7d |
| name                       | n1.nano                              |
| os-flavor-access:is_public | True                                 |
| properties                 |                                      |
| ram                        | 128                                  |
| rxtx_factor                | 1.0                                  |
| swap                       |                                      |
| vcpus                      | 1                                    |
+----------------------------+--------------------------------------+

创建虚机

使用openstack server create --flavor n1.nano --image cirros --nic net-id=cec-vpc --security-group cec-sg cec-vm01命令创建一个规格为n1.nano 镜像为cirros 网络为cec-vpc 安全组为cec-sg 名为cec-vm01的虚机

列出虚机

通过openstack server list命令列出当前项目下的虚机

[root@controller ~]# openstack server list
+--------------------------------------+----------+--------+---------------------+--------+---------+
| ID                                   | Name     | Status | Networks            | Image  | Flavor  |
+--------------------------------------+----------+--------+---------------------+--------+---------+
| 965bc540-28b9-45a9-9130-b1f6a94d11cd | cec-vm01 | ACTIVE | cec-vpc=172.16.2.44 | cirros | n1.nano |
+--------------------------------------+----------+--------+---------------------+--------+---------+

创建浮动IP

通过openstack floating ip create provider命令创建一个浮动ip,

关联浮动ip给虚机

通过openstack server add floating ip cec-vm01 10.0.0.204命令给主机cec-vm01关联10.0.0.204的浮动ip,如果不指定ip直接执行则会从浮动ip中随机拿一条给他用。这条命令执行成功是无回显的。

其他命令

OpenStack的命令有很多很多,这里无法一一的去做讲解,而是在实战中使用学习,这里只是说了些常用的,还有一些删除增加查看这里可能没说,基本上就是openstack 类别 list|create|delete|show来去管理这些内容。

最后修改:2025 年 02 月 07 日
如果觉得我的文章对你有用,请随意赞赏