OpenStack综合运维
OpenStack命令速查: https://docs.openstack.org/zh_CN/user-guide/cli-cheat-sheet.html
目录
- 1 KeyStone
- 1.1 查看用户列表
- 1.2 创建用户
- 1.3 显示用户详细信息
- 1.4 更新用户的信息
- 1.5 赋予用户一个角色
- 1.6 查看用户与角色的对应关系---显示的表格是id
- 1.7 删除用户的一个角色
- 1.8 更新用户信息
- 1.9 删除用户
- 1.10 显示工程列表
- 1.11 创建工程
- 1.12 删除工程
- 1.13 更新工程信息
- 1.14 显示工程详细信息
- 1.15 显示角色列表
- 1.16 创建角色
- 1.17 删除角色
- 1.18 显示角色详细信息
- 1.19 显示服务列表
- 1.20 创建服务
- 1.21 删除服务
- 1.22 显示服务详细信息
- 1.23 显示Endpoint列表
- 1.24 创建Endpoint
- 1.25 删除Endpoint
- 1.26 显示Endpoint详细信息
- 1.27 列出catalog
- 2 镜像服务
- 3 计算服务
- 4 网络服务
KeyStone
以下命令都在M版OpenStack上运行。
查看用户列表
[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# openstack user list
+----------------------------------+---------+ | ID | Name | +----------------------------------+---------+ | 2dd0faf6febc47aeba0676c22f6e2258 | nova | | 475ed39a48cf426187531315a5b48927 | demo | | 875f7c5525cb438d8f898651a19311d2 | neutron | | 9d35013f64194b16ba8b4a13f9d18266 | glance | | cdc96891246b4afca13a25d005f41494 | admin | +----------------------------------+---------+
创建用户
openstack user create [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN] [--max-width <integer>] [--print-empty] [--noindent] [--prefix PREFIX] [--domain <domain>] [--project <project>] [--project-domain <project-domain>] [--password <password>] [--password-prompt] [--email <email-address>] [--description <description>] [--enable | --disable] [--or-show] <name>
!!!!!一般使用中只要写出自己需要的参数就好
[root@controller ~]# openstack user create --domain demo --password 000000 ma +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | b39f90915f0a4956b6f643d4354abafe | | enabled | True | | id | 7d8423eaf36b4d0283615c2ddc5a312a | | name | ma | +-----------+----------------------------------+
显示用户详细信息
Mitaka版本:
openstack user show <user-id> <用户名或者用户id都可以,以下也是一样,为了简单下面只使用user-id>
更新用户的信息
openstack user set [-h] [--name <name>] [--domain <domain>][--project <project>][--project-domain <project-domain>] [--password <password>] [--password-prompt][--email <email-address>][--description <description>] [--enable | --disable] <user>
赋予用户一个角色
openstack role add --project demo(项目名) --user demo(用户名) user(角色名)
查看用户与角色的对应关系---显示的表格是id
openstack role assignment list
删除用户的一个角色
openstack user-role-remove --user-id <user-id> --role-id <role-id>
[--tenant-id <tenant-id>]
更新用户信息
openstack role remove [-h] [--domain <domain> | --project <project>] [--user <user> | --group <group>] [--group-domain <group-domain>] [--project-domain <project-domain>] [--user-domain <user-domain>] [--inherited] [--role-domain <role-domain>] <role>
删除用户
openstack user delete <user-id>
显示工程列表
openstack project list
[root@controller ~]# openstack project list +----------------------------------+---------+ | ID | Name | +----------------------------------+---------+ | 021a6c77448f45b899502ab99a6d74e2 | admin | | 10092084d56046baa1fda067dcb38e48 | service | | 5a5f220240504928b92c0547b2a39bd8 | demo |
创建工程
openstack project create name
删除工程
openstack project delete <project-id>
更新工程信息
openstack project-update [--name <project_name>][--domain <domain>] [--description <project-description>] [--enabled <true|false>] <project-id>
显示工程详细信息
openstack project show<project-id>
显示角色列表
openstack role list
创建角色
openstack role create name
删除角色
openstack role delete <role-id>
显示角色详细信息
openstack role show <role-id>
显示服务列表
openstack service list
[root@controller ~]# openstack service list +----------------------------------+----------+----------+ | ID | Name | Type | +----------------------------------+----------+----------+ | cd4e3238f1814cde8d97b95127ee3a4c | keystone | identity | +----------------------------------+----------+----------+
创建服务
openstack service create [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN] [--max-width <integer>] [--print-empty] [--noindent] [--prefix PREFIX] [--name <name>] [--description <description>] [--enable | --disable] <type>
删除服务
openstack service delete <service-id>
显示服务详细信息
openstack service show <service-id>
显示Endpoint列表
openstack endpoint list
[root@controller ~]# openstack endpoint list +----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------+ | ID | Region | Service Name | Service Type | Enabled | Interface | URL | +----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------+ | 7961b02c57c14625bf71f463eab518e5 | RegionOne | keystone | identity | True | public | http://controller:5000/v3 | | 80e60f17db0c4fdca2b9ffb5073c3af2 | RegionOne | keystone | identity | True | internal | http://controller:5000/v3 | | 9c188a9a356c4697b49cb4ce721135c0 | RegionOne | keystone | identity | True | admin | http://controller:35357/v3 |
创建Endpoint
openstack endpoint create [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN] [--max-width <integer>] [--print-empty] [--noindent] [--prefix PREFIX] [--region <region-id>] [--enable | --disable] <service> <interface> <url>
删除Endpoint
openstack endpoint delete <endpoint-id>
显示Endpoint详细信息
openstack endpoint show <service-id>
列出catalog
openstack catalog list
[root@controller ~]# openstack catalog list +----------+----------+---------------------------------------+ | Name | Type | Endpoints | +----------+----------+---------------------------------------+ | keystone | identity | RegionOne | | | | public: http://controller:5000/v3 | | | | RegionOne | | | | internal: http://controller:5000/v3 | | | | RegionOne | | | | admin: http://controller:35357/v3 | | | | | +----------+----------+---------------------------------------+
镜像服务
创建镜像
从网站http://download.cirros-cloud.net/0.3.0/ 上下载Cirros测试镜像cirros-0.3.0-x86_64-disk.img到电脑桌面。
将桌面上的Cirros镜像通过SecureFXPortable软件上传到控制节点的文件系统中,例如 上传到虚拟机的/mnt/目录中
图片
生效环境变量
# source admin-openrc.sh
执行镜像创建命令
glance image-create --name maxin --file /mnt/cirros-0.3.0-x86_64-disk.img --disk-format qcow2 --container-format bare --progress(请把这里的标红颜色的镜像名称和镜像源文件地址替换成你自己的。)将命令成功执行后的结果截图如下:
列出所有镜像
执行命令 glance image-list ,结果如下:
图片
查看镜像的详细信息
执行命令glance image-show [id号]
这里的[id号]替换成你在执行上一步列表中任意一个镜像所对应的ID号
删除镜像
现在我们再上传一个镜像,这回用班级命名,然后用命令行把它删除掉
glance image-create --name wangluo15 --file /mnt/cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --progress(请把这里的标红颜色的镜像名称和镜像源文件地址替换成你自己的。)
执行命令 glance image-list ,查看当前的镜像列表,截图如下:
在上一命令的返回列表中,找到你刚上传的这个镜像的ID号,然后把这个镜像删除:
glance image-delete [id号]
计算服务
查看当前所有的nova服务是否正常
(本步骤及以下均在命令行界面中完成)
source admin-openrc.sh
nova service-list
查看当前可用镜像
nova image-list
查看云主机类型
nova flavor-list
查看当前已建立的云主机情况
nova list
查看具体的某一台主机的信息
nova show [uuid] (其中 [uuid] 代表上一个表中某一台云主机的id号,下同)
查看当前网络
nova network-list
查看当前网络的具体信息
[root@controller ~]# nova network-show 0f82a3a5-5f0e-42d3-ba8b-93a02ea76a20
建立云主机
创建密钥
创建一个密钥:
nova keypair-add oskey > oskey.priv chmod 600 oskey.priv
你查看所有可用的云主机类型
nova flavor-list
查看现在可用的镜像类型
nova image-list
新建立云主机
最后,你利用刚才查到的云主机类型和镜像信息,在后台新建立一个云主机,
nova boot --flavor [flavor-id] --key_name oskey --image [image-id] hostname
其中,flavor-id 就是上上步云主机类型表里的id号,建议选tiny的那个,oskey是你刚才创建的密钥,image-id就是上步镜像表里的id号,建议选cirros的那个,hostname换成你自己想起的云主机的名字。
云主机的管理
检查云主机状态
检查一下当前云主机的状态。
nova list
截图如下:
开启云主机
nova list
nova start [uuid] ((其中 [uuid] 代表上一个表中某一台云主机的id号,下同)
执行命令 nova list ,如果当前云主机在Status那一栏显示Active,表示开启成功,截图如下:
重启云主机
nova reboot [uuid] ([uuid]代表着上一个表中第一台云主机的id号)
关闭云主机
nova stop [uuid] 其中 [uuid]代表了上个表中云主机的id号
快照操作
创建快照
nova list
nova image-create [uuid] "snapshot01" ([uuid]代表着上一个表中第一台云主机的id号)
nova image-list 截图如下:
建立更多云主机
通过快照建立更多云主机
nova keypair-add oskey2 > oskey2.priv chmod 600 oskey2.priv nova flavor-list nova image-list nova boot --flavor [flavor-id] --key_name oskey2 --image [image-id] hostname
其中,flavor-id 就是上上步云主机类型表里的id号,建议选tiny的那个,image-id就是上步镜像表里的id号,选择你刚刚建立的那个快照的id,hostname换成你自己想起的云主机的名字。(截图如下:)
用这种方法,在云平台上快速建立2~3个新的云主机,以满足顾客访问的需要。
网络服务
列出当前租户所有的网络
neutron net-list
+--------------------------------------+------------+-----------------------------------------------------+ | id | name | subnets | +--------------------------------------+------------+-----------------------------------------------------+ | 0f82a3a5-5f0e-42d3-ba8b-93a02ea76a20 | sharednet1 | c3623b66-3fff-49ec-b78b-6c48348aedb2 192.168.1.0/24 | +--------------------------------------+------------+-----------------------------------------------------+
查看一个网络的详细信息
neutron net-show <name-or-id>
[root@controller ~]# neutron net-show 0f82a3a5-5f0e-42d3-ba8b-93a02ea76a20 +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | 0f82a3a5-5f0e-42d3-ba8b-93a02ea76a20 | | name | sharednet1 | | provider:network_type | flat | | provider:physical_network | physnet1 | | provider:segmentation_id | | | router:external | False | | shared | True | | status | ACTIVE | | subnets | c3623b66-3fff-49ec-b78b-6c48348aedb2 | | tenant_id | a0a60387c08e402f9790b05310245cd8 | +---------------------------+--------------------------------------+
列出网络中所有的agent(代理)
neutron agent-list
+--------------------------------------+--------------------+------------+-------+----------------+ | id | agent_type | host | alive | admin_state_up | +--------------------------------------+--------------------+------------+-------+----------------+ | 0276239c-7920-4a80-b0de-a986271c2068 | L3 agent | controller | :-) | True | | 204f542c-763a-4313-932c-c86e54418830 | Metadata agent | controller | :-) | True | | 5eaf9601-e590-4719-951a-bd7ed7e5e3d3 | DHCP agent | controller | :-) | True | | 6c1af6b0-8ade-4483-804d-075ce0833146 | Open vSwitch agent | controller | :-) | True | +--------------------------------------+--------------------+------------+-------+----------------+
列出路由信息
neutron router-list
删除现有网络
删除路由接口
查看端口信息:neutron port-list
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+ | id | name | mac_address | fixed_ips | +--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+ | 596e4378-889c-4944-8335-b196467f2cf1 | | fa:16:3e:9e:86:be | {"subnet_id": "c3623b66-3fff-49ec-b78b-6c48348aedb2", "ip_address": "192.168.1.109"} | | 79e423dc-7f01-4a67-b64b-d9ef9a9c6bf6 | | fa:16:3e:8c:84:27 | {"subnet_id": "c3623b66-3fff-49ec-b78b-6c48348aedb2", "ip_address": "192.168.1.111"} | | 9f1882a0-0d89-40ea-a7eb-c891885b1389 | | fa:16:3e:2c:ff:b6 | {"subnet_id": "c3623b66-3fff-49ec-b78b-6c48348aedb2", "ip_address": "192.168.1.101"} | | ea4dae07-1677-48f2-8ca8-5a01b9a729aa | | fa:16:3e:8f:c1:43 | {"subnet_id": "c3623b66-3fff-49ec-b78b-6c48348aedb2", "ip_address": "192.168.1.102"} | | fdfcdf5e-8e49-4d52-b8db-c8da69f706d9 | | fa:16:3e:76:58:39 | {"subnet_id": "c3623b66-3fff-49ec-b78b-6c48348aedb2", "ip_address": "192.168.1.110"} | +--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+
查看网络信息: neutron net-list
+--------------------------------------+------------+-----------------------------------------------------+ | id | name | subnets | +--------------------------------------+------------+-----------------------------------------------------+ | 0f82a3a5-5f0e-42d3-ba8b-93a02ea76a20 | sharednet1 | c3623b66-3fff-49ec-b78b-6c48348aedb2 192.168.1.0/24 | +--------------------------------------+------------+-----------------------------------------------------+
查看子网信息:neutron subnet-list
+--------------------------------------+------+----------------+----------------------------------------------------+ | id | name | cidr | allocation_pools | +--------------------------------------+------+----------------+----------------------------------------------------+ | c3623b66-3fff-49ec-b78b-6c48348aedb2 | | 192.168.1.0/24 | {"start": "192.168.1.100", "end": "192.168.1.200"} | +--------------------------------------+------+----------------+----------------------------------------------------+
查看路由信息:neutron router-list
删除router-interface:
neutron router-interface-delete [router-id] [subnet-id]
删除端口信息
查看端口信息: neutron port-list
+--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+ | id | name | mac_address | fixed_ips | +--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+ | 596e4378-889c-4944-8335-b196467f2cf1 | | fa:16:3e:9e:86:be | {"subnet_id": "c3623b66-3fff-49ec-b78b-6c48348aedb2", "ip_address": "192.168.1.109"} | | 79e423dc-7f01-4a67-b64b-d9ef9a9c6bf6 | | fa:16:3e:8c:84:27 | {"subnet_id": "c3623b66-3fff-49ec-b78b-6c48348aedb2", "ip_address": "192.168.1.111"} | | 9f1882a0-0d89-40ea-a7eb-c891885b1389 | | fa:16:3e:2c:ff:b6 | {"subnet_id": "c3623b66-3fff-49ec-b78b-6c48348aedb2", "ip_address": "192.168.1.101"} | | ea4dae07-1677-48f2-8ca8-5a01b9a729aa | | fa:16:3e:8f:c1:43 | {"subnet_id": "c3623b66-3fff-49ec-b78b-6c48348aedb2", "ip_address": "192.168.1.102"} | | fdfcdf5e-8e49-4d52-b8db-c8da69f706d9 | | fa:16:3e:76:58:39 | {"subnet_id": "c3623b66-3fff-49ec-b78b-6c48348aedb2", "ip_address": "192.168.1.110"} | +--------------------------------------+------+-------------------+--------------------------------------------------------------------------------------+
删除端口信息:neutron port-delete [id]
反复删除,直到将所有的端口都删干净为止。
再次查看端口信息:neutron port-list
[root@controller ~]# neutron port-delete 596e4378-889c-4944-8335-b196467f2cf1 Deleted port: 596e4378-889c-4944-8335-b196467f2cf1 [root@controller ~]# neutron port-delete 79e423dc-7f01-4a67-b64b-d9ef9a9c6bf6 Deleted port: 79e423dc-7f01-4a67-b64b-d9ef9a9c6bf6 [root@controller ~]# neutron port-delete 9f1882a0-0d89-40ea-a7eb-c891885b1389 Deleted port: 9f1882a0-0d89-40ea-a7eb-c891885b1389 [root@controller ~]# neutron port-delete ea4dae07-1677-48f2-8ca8-5a01b9a729aa Deleted port: ea4dae07-1677-48f2-8ca8-5a01b9a729aa [root@controller ~]# neutron port-delete fdfcdf5e-8e49-4d52-b8db-c8da69f706d9 Deleted port: fdfcdf5e-8e49-4d52-b8db-c8da69f706d9
删除子网
查看子网信息:neutron subnet-list
+--------------------------------------+------+----------------+----------------------------------------------------+ | id | name | cidr | allocation_pools | +--------------------------------------+------+----------------+----------------------------------------------------+ | c3623b66-3fff-49ec-b78b-6c48348aedb2 | | 192.168.1.0/24 | {"start": "192.168.1.100", "end": "192.168.1.200"} | +--------------------------------------+------+----------------+----------------------------------------------------+
删除子网信息:neutron subnet-delete [id]
直到把所有的子网到删除为止:
[root@controller ~]# neutron subnet-delete c3623b66-3fff-49ec-b78b-6c48348aedb2 Deleted subnet: c3623b66-3fff-49ec-b78b-6c48348aedb2
删除路由
查看路由信息: neutron router-list
删除路由:neutron route-delete [id]
删除整个网络
查看网络信息:
neutron net-list
+--------------------------------------+------------+---------+ | id | name | subnets | +--------------------------------------+------------+---------+ | 0f82a3a5-5f0e-42d3-ba8b-93a02ea76a20 | sharednet1 | | +--------------------------------------+------------+---------+
删除网络信息:
neutron net-delete [id]
[root@controller ~]# neutron net-delete 0f82a3a5-5f0e-42d3-ba8b-93a02ea76a20 Deleted network: 0f82a3a5-5f0e-42d3-ba8b-93a02ea76a20
创建一个新的网络(FLAT型)
查看租户信息
keystone tenant-list
+----------------------------------+---------+---------+ | id | name | enabled | +----------------------------------+---------+---------+ | 00d9dcd033d542b68614c88d19fa0544 | admin | True | | a0a60387c08e402f9790b05310245cd8 | service | True |
创建网络
neutron net-create --tenant-id [tenant-service-id] sharednet1 --shared --provider:network_type flat --provider:physical_network physnet1
+---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | cf6e1ccf-1ac7-4928-93d0-0ef8487c47af | | name | sharednet1 | | provider:network_type | flat | | provider:physical_network | physnet1 | | provider:segmentation_id | | | shared | True | | status | ACTIVE | | subnets | | | tenant_id | a0a60387c08e402f9790b05310245cd8 | +---------------------------+--------------------------------------+
创建子网
neutron subnet-create sharednet1 192.168.100.0/24 --name subnet001 --enable_dhcp=False --allocation-pool start=192.168.100.100,end=192.168.100.150 --gateway=192.168.100.2
Created a new subnet: +------------------+--------------------------------------------------------+ | Field | Value | +------------------+--------------------------------------------------------+ | allocation_pools | {"start": "192.168.100.100", "end": "192.168.100.150"} | | cidr | 192.168.100.0/24 | | dns_nameservers | | | enable_dhcp | False | | gateway_ip | 192.168.100.2 | | host_routes | | | id | 4073e2b2-ac4e-4256-b6fb-828912b48492 | | ip_version | 4 | | name | subnet001 | | network_id | cf6e1ccf-1ac7-4928-93d0-0ef8487c47af | | tenant_id | 00d9dcd033d542b68614c88d19fa0544 | +------------------+--------------------------------------------------------+
此步如果有困难,可到图形界面中完成:
在网络上创建云主机(此步如果有困难,可到图形界面中完成)
nova keypair-add oskey2 > oskey2.priv
chmod 600 oskey2.priv
nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ | 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 | +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
nova image-list
+--------------------------------------+----------------+--------+-------------- ------------------------+ | ID | Name | Status | Server | +--------------------------------------+----------------+--------+-------------- ------------------------+ | 9d3ec99c-5360-4838-bf47-fe40b0b72436 | centos6.5 | ACTIVE | | | 498ef44c-0d77-4c8f-ad1e-508c8ca858b1 | cirros | ACTIVE | | | 37fcb738-1a4a-45bb-aa31-60b295fabc37 | cirros_01 | ACTIVE | 4f7ae23b-6701 -41e0-b693-a426b8ba6d83 | | 22758970-cc05-4ea9-872d-91b635a63149 | cirros_1112 | ACTIVE | | | 1e13f713-5983-4869-aad3-24e538c7b3df | maxin | ACTIVE | | | 853dd09e-b5e0-4326-ab02-7f9db3ba872f | maxin | ACTIVE | | | abfd84a8-bd63-401f-93fa-ac3dca313fad | maxin | ACTIVE | f88a98bc-311d -48ae-a4f6-e85d282a113a | | ef2e6909-9938-4fd0-85a9-196f1fe6b7e6 | maxin | ACTIVE | | | bf75808f-ce96-42f9-a222-3f32b029545f | wulian1602_yun | ACTIVE | 4a19e125-6104 -464a-a8ea-247b49f4fc76 | +--------------------------------------+----------------+--------+-------------- ------------------------+
nova boot --flavor [flovor_id] --key_name oskey2 --image [image_id] maxin1109
[root@controller ~]# nova boot --flavor 1 --key_name oskey2 --image 498ef44c-0d77-4c8f-ad1e-508c8ca858b1 maxin1108 +--------------------------------------+-----------------------------------------------+ | Property | Value | +--------------------------------------+-----------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | - | | OS-EXT-SRV-ATTR:hypervisor_hostname | - | | OS-EXT-SRV-ATTR:instance_name | instance-0000000e | | 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 | 94t3Rq8FWoXH | | config_drive | | | created | 2018-12-09T20:05:30Z | | flavor | m1.tiny (1) | | hostId | | | id | 069beb3c-efe1-488e-b725-3afb3a763ad9 | | image | cirros (498ef44c-0d77-4c8f-ad1e-508c8ca858b1) | | key_name | oskey2 | | metadata | {} | | name | maxin1108 | | os-extended-volumes:volumes_attached | [] | | progress | 0 | | security_groups | default | | status | BUILD | | tenant_id | 00d9dcd033d542b68614c88d19fa0544 | | updated | 2018-12-09T20:05:30Z | | user_id | 83cbfd254b294529853aa51200bd6fe4 | +--------------------------------------+-----------------------------------------------+