身份验证
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
来去管理这些内容。