用命令测试安装好的OpenStack环境

OpenStack三个节点icehouse-gre模式部署一文部署了一套OpenStack环境,接下来使用命令测试一遍。

首先要明确几个概念:

外网:可分配floating ip绑定到虚拟机,外部就可以访问虚拟机。

虚拟网络(内部网络,私有网络):虚拟机的虚拟网卡所在的私有网络。

子网:用户创建的每个网络至少要有一个子网(也可以有多个子网)

路由:用户创建的每个网络至少有一个路由,该路由的接口要关联这个网络

fixed ip:虚拟机网卡在虚拟网络上的ip

floating ip:虚拟网络对应的外部网络上的ip

interface:一个网络接口

端口:子网有多个端口(一般会有MAC地址和IP地址),在GRE模式中子网中一般会有qdhcp端口,qrouter端口和为虚拟机实例分配的端口,它们的ip地址属于这个子网

一、查看nova和neutron服务,确保都是笑脸

#nova-manage service list

root@controller:~# nova-manage service list
Binary Host Zone Status State Updated_At
nova-cert controller internal enabled :-) 2015-01-12 00:39:05
nova-consoleauth controller internal enabled :-) 2015-01-12 00:38:59
nova-scheduler controller internal enabled :-) 2015-01-12 00:39:00
nova-conductor controller internal enabled :-) 2015-01-12 00:39:03
nova-compute compute1 nova enabled :-) 2015-01-12 00:39:03

#neutron agent-list

root@controller:~# neutron agent-list
+--------------------------------------+--------------------+----------+-------+----------------+
| id | agent_type | host | alive | admin_state_up |
+--------------------------------------+--------------------+----------+-------+----------------+
| 7a1f9910-62d8-4461-b31d-1a562bd0b76e | DHCP agent | network | :-) | True |
| 86d1c916-8b05-4840-965c-e9152388e0c2 | Open vSwitch agent | compute1 | :-) | True |
| 8809b0e3-010d-4d2f-b552-10be24002684 | Open vSwitch agent | network | :-) | True |
| aca01734-7522-427a-b3f2-45400d22121c | Metadata agent | network | :-) | True |
| e964a21a-4b8d-403b-9c81-2a95f387285e | L3 agent | network | :-) | True |
+--------------------------------------+--------------------+----------+-------+----------------+

二、创建租户和用户

创建租户

# keystone tenant-create --name TenantA

root@controller:~# keystone tenant-create --name TenantA
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | |
| enabled | True |
| id | 60a10cd7a61b493d910eabd353c07567 |
| name | TenantA |
+-------------+----------------------------------+

创建用户

# keystone user-create --name=UserA --pass=password --tenant-id TenantA --email=usera@test.com

root@controller:~# keystone user-create --name=UserA --pass=password --tenant-id TenantA --email=usera@test.com
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | usera@test.com |
| enabled | True |
| id | be1db0d2fd134025accd2654cfc66056 |
| name | UserA |
| tenantId | 60a10cd7a61b493d910eabd353c07567 |
| username | UserA |
+----------+----------------------------------+

为租户添加用户

#keystone user-role-add --tenant TenantA  --user UserA --role Member

root@controller:~# keystone user-role-add --tenant TenantA --user UserA --role Member
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).

三、准备neutron网络

创建外网

# neutron net-create Ext-Net --provider:network_type gre --provider:segmentation_id 1 --router:external true

root@controller:~# neutron net-create Ext-Net --provider:network_type gre --provider:segmentation_id 1 --router:external true
Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | c8699820-7c6d-4441-9602-3425f2c630ec |
| name | Ext-Net |
| provider:network_type | gre |
| provider:physical_network | |
| provider:segmentation_id | 1 |
| router:external | True |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | c91d0723aaea4985a77801a15ef66438 |
+---------------------------+--------------------------------------+

创建外网的子网

# neutron subnet-create --allocation-pool start=10.1.101.80,end=10.1.101.100 --gateway 10.1.101.254 Ext-Net 10.1.101.0/24 --enable_dhcp=False

root@controller:~# neutron subnet-create --allocation-pool start=10.1.101.80,end=10.1.101.100 --gateway 10.1.101.254 Ext-Net 10.1.101.0/24 --enable_dhcp=False
Created a new subnet:
+------------------+-------------------------------------------------+
| Field | Value |
+------------------+-------------------------------------------------+
| allocation_pools | {"start": "10.1.101.80", "end": "10.1.101.100"} |
| cidr | 10.1.101.0/24 |
| dns_nameservers | |
| enable_dhcp | False |
| gateway_ip | 10.1.101.254 |
| host_routes | |
| id | 2c4155c9-5a2e-471c-a4d8-40a86b45ab0a |
| ip_version | 4 |
| name | |
| network_id | c8699820-7c6d-4441-9602-3425f2c630ec |
| tenant_id | c91d0723aaea4985a77801a15ef66438 |
+------------------+-------------------------------------------------+

接下来创建租户的子网和虚拟路由

创建租户网络

# neutron --os-tenant-name TenantA  --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 net-create tenantA-Net

root@controller:~# neutron --os-tenant-name TenantA  --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 net-create tenantA-Net
Created a new network:
+----------------+--------------------------------------+
| Field | Value |
+----------------+--------------------------------------+
| admin_state_up | True |
| id | 7c22bbd9-166c-4610-9a3d-3b8b92c77518 |
| name | tenantA-Net |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | 60a10cd7a61b493d910eabd353c07567 |
+----------------+--------------------------------------+

创建租户子网

# neutron --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 subnet-create tenantA-Net 10.0.0.0/24

root@controller:~# neutron --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 subnet-create tenantA-Net 10.0.0.0/24
Created a new subnet:
+------------------+--------------------------------------------+
| Field | Value |
+------------------+--------------------------------------------+
| allocation_pools | {"start": "10.0.0.2", "end": "10.0.0.254"} |
| cidr | 10.0.0.0/24 |
| dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | 10.0.0.1 |
| host_routes | |
| id | c37d8ed0-372e-4b24-9ba2-897c38c6ddbf |
| ip_version | 4 |
| name | |
| network_id | 7c22bbd9-166c-4610-9a3d-3b8b92c77518 |
| tenant_id | 60a10cd7a61b493d910eabd353c07567 |
+------------------+--------------------------------------------+

创建租户虚拟路由

neutron --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 router-create tenant-R1

root@controller:~# neutron --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 router-create tenant-R1
Created a new router:
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| admin_state_up | True |
| external_gateway_info | |
| id | 680944ad-679c-4fe8-ae4b-258cd8ac337f |
| name | tenant-R1 |
| status | ACTIVE |
| tenant_id | 60a10cd7a61b493d910eabd353c07567 |
+-----------------------+--------------------------------------+

增加路由接口

(替换${subnet_id}为子网ID)

neutron --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 router-interface-add tenant-R1  ${subnet_id}

root@controller:~# neutron --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 router-interface-add tenant-R1  c37d8ed0-372e-4b24-9ba2-897c38c6ddbf
Added interface 81388454-30e0-45e4-b3dd-b7b2e8dbf067 to router tenant-R1.

给路由增加网关

# neutron router-gateway-set tenant-R1 Ext-Net

root@controller:~# neutron router-gateway-set tenant-R1 Ext-Net
Set gateway for router tenant-R1

到此为止UserA看到的网络拓扑如下:

aaarticlea/png;base64,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" alt="" />

四、安全组规则

安全组规则会影响到外面ping虚拟机和ssh登录虚拟机,所以在controller节点中为openstack设置好ICMP和TCP规则。

这里设置安全组规则相当于打开防火墙端口,允许ssh和ping虚拟机,这是个重点,不设置这个将无法访问虚拟机。

获得TenantA的default安全组规则

# neutron --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 security-group-list

root@controller:~# neutron --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 security-group-list
+--------------------------------------+---------+-------------+
| id | name | description |
+--------------------------------------+---------+-------------+
| 8bd8fb6b-7141-4900-8321-390cc1a5d999 | default | default |
+--------------------------------------+---------+-------------+

默认default规则:

aaarticlea/png;base64,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" alt="" />

设置nova中default的 ICMP/TCP/UDP安全组规则

# nova --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 secgroup-add-rule default tcp 1 65535 0.0.0.0/0

root@controller:~# nova --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 secgroup-add-rule default tcp 1 65535 0.0.0.0/0
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port | IP Range | Source Group |
+-------------+-----------+---------+-----------+--------------+
| tcp | 1 | 65535 | 0.0.0.0/0 | |
+-------------+-----------+---------+-----------+--------------+

# nova --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 secgroup-add-rule default udp 1 65535 0.0.0.0/0

root@controller:~# nova --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 secgroup-add-rule default udp 1 65535 0.0.0.0/0
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port | IP Range | Source Group |
+-------------+-----------+---------+-----------+--------------+
| udp | 1 | 65535 | 0.0.0.0/0 | |
+-------------+-----------+---------+-----------+--------------+

# nova --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 secgroup-add-rule default icmp -1 -1 0.0.0.0/0

root@controller:~# nova --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 secgroup-add-rule default icmp -1 -1 0.0.0.0/0
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port | IP Range | Source Group |
+-------------+-----------+---------+-----------+--------------+
| icmp | -1 | -1 | 0.0.0.0/0 | |
+-------------+-----------+---------+-----------+--------------+

五、起虚拟机

查看镜像:

# glance index

root@controller:~# glance index
ID Name Disk Format Container Format Size
------------------------------------ ------------------------------ -------------------- -------------------- --------------
a1de861a-be9c-4223-9a7a-cf5917489ce9 cirros-0.3.2-x86_64 qcow2 bare 13167616

起虚拟机,替换{the cirros ID from Glance}为镜像ID

#root@controller:~# nova --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 boot --flavor 1 --image{the cirros ID from Glance} vm001

root@controller:~# nova --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 boot --flavor 1 --image a1de861a-be9c-4223-9a7a-cf5917489ce9 vm001
+--------------------------------------+------------------------------------------------------------+
| Property | Value |
+--------------------------------------+------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | nova |
| 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 | sCekd6U9PcvU |
| config_drive | |
| created | 2015-01-12T01:18:27Z |
| flavor | m1.tiny (1) |
| hostId | |
| id | d4a05267-b610-4c61-86e0-542ae9a7d93f |
| image | cirros-0.3.2-x86_64 (a1de861a-be9c-4223-9a7a-cf5917489ce9) |
| key_name | - |
| metadata | {} |
| name | vm001 |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| security_groups | default |
| status | BUILD |
| tenant_id | 60a10cd7a61b493d910eabd353c07567 |
| updated | 2015-01-12T01:18:28Z |
| user_id | be1db0d2fd134025accd2654cfc66056 |
+--------------------------------------+------------------------------------------------------------+

检查虚拟机状态为ACTIVE

# nova --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 list

root@controller:~# nova --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 list
+--------------------------------------+-------+--------+------------+-------------+----------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+-------+--------+------------+-------------+----------------------+
| d4a05267-b610-4c61-86e0-542ae9a7d93f | vm001 | ACTIVE | - | Running | tenantA-Net=10.0.0.2 |
+--------------------------------------+-------+--------+------------+-------------+----------------------+

六、为虚拟机分配浮动IP

创建一个浮动IP

# neutron --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 floatingip-create Ext-Net

root@controller:~# neutron --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 floatingip-create Ext-Net
Created a new floatingip:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| fixed_ip_address | |
| floating_ip_address | 10.1.101.81 |
| floating_network_id | c8699820-7c6d-4441-9602-3425f2c630ec |
| id | 0482a808-e92b-4ae0-a830-6f149d310c30 |
| port_id | |
| router_id | |
| status | DOWN |
| tenant_id | 60a10cd7a61b493d910eabd353c07567 |
+---------------------+--------------------------------------+

查看floating-ip

# nova --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0  floating-ip-list

root@controller:~# nova --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0  floating-ip-list
+-------------+-----------+----------+---------+
| Ip | Server Id | Fixed Ip | Pool |
+-------------+-----------+----------+---------+
| 10.1.101.81 | | - | Ext-Net |
+-------------+-----------+----------+---------+

我创建了一个新的浮动IP10.1.101.82,分配的是10.1.101.82

分配浮动IP给虚拟机,替换{the vm id}为虚拟机ID

# nova --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 floating-ip-associate  {the vm id} 10.1.101.82

root@controller:~# nova --os-tenant-name TenantA --os-username UserA --os-password password  --os-auth-url=http://localhost:5000/v2.0 floating-ip-associate  d4a05267-b610-4c61-86e0-542ae9a7d93f  10.1.101.82 

检查虚拟机状态,现在就可以看到浮动ip了。

# nova --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 list

root@controller:~# nova --os-tenant-name TenantA --os-username UserA --os-password password --os-auth-url=http://localhost:5000/v2.0 list
+--------------------------------------+-------+--------+------------+-------------+-----------------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+-------+--------+------------+-------------+-----------------------------------+
| d4a05267-b610-4c61-86e0-542ae9a7d93f | vm001 | ACTIVE | - | Running | tenantA-Net=10.0.0.2, 10.1.101.82 |
+--------------------------------------+-------+--------+------------+-------------+-----------------------------------+

七、SSH到虚拟机(虚拟机状态为ACTIVE,密码是cubswin:))

替换{put_floating_ip_here}为虚拟机的浮动IP

ssh cirros@{put_floating_ip_here}
root@controller:~# ssh cirros@10.1.101.82
The authenticity of host '10.1.101.82 (10.1.101.82)' can't be established.
RSA key fingerprint is da:a3:1a:60:f1:e9:3a:e2:a7:6c:35:cb:f8:9b:b7:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.1.101.82' (RSA) to the list of known hosts.
cirros@10.1.101.82's password:
$
$
$
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=3 ttl=35 time=295.980 ms
64 bytes from 8.8.8.8: seq=7 ttl=35 time=299.047 ms

八、上传镜像

查看镜像

root@sc-disk01:~/image# glance --os-username admin --os-password windawnKey --os-tenant-name admin --os-auth-url=http://10.0.101.11:35357/v2.0 image-list
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| ae63b964-230f-4ff8-bcf9-524d44b6980b | cirros-0.3.2-x86_64 | qcow2 | bare | 13167616 | active |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+

上传镜像

root@sc-disk01:~# cd image/
root@sc-disk01:~/image# ls
app_2013_1127 devstack_201407171353
root@sc-disk01:~/image# glance image-create --name="app_2013_1127" --is-public=True --disk-format=qcow2 --container-format=bare < ./app_2013_1127
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | f741693bf9297714917e27ce18394dbb |
| container_format | bare |
| created_at | 2015-03-16T01:53:23 |
| deleted | False |
| deleted_at | None |
| disk_format | qcow2 |
| id | 0391cd63-59da-48e2-929d-6a35a43c9bfc |
| is_public | True |
| min_disk | 0 |
| min_ram | 0 |
| name | app_2013_1127 |
| owner | 49b72345ae0046e284f61503f047b587 |
| protected | False |
| size | 5299503104 |
| status | active |
| updated_at | 2015-03-16T01:57:13 |
| virtual_size | None |
+------------------+--------------------------------------+
root@sc-disk01:~/image#

上传镜像截图

用命令测试安装好的OpenStack环境

或者用以下命令上传

root@sc-disk01:~/image# glance image-create --name="app_2014_0124_1604" --is-public=True --disk-format=qcow2 --container-format=bare --file ./app_2014_0124_1604 --progress
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | bb39bb3b5fa5996aecfa512dc178b5d6 |
| container_format | bare |
| created_at | 2015-03-16T02:04:12 |
| deleted | False |
| deleted_at | None |
| disk_format | qcow2 |
| id | 02111d11-42db-432d-a840-6945794587c0 |
| is_public | True |
| min_disk | 0 |
| min_ram | 0 |
| name | app_2014_0124_1604 |
| owner | 49b72345ae0046e284f61503f047b587 |
| protected | False |
| size | 5308547072 |
| status | active |
| updated_at | 2015-03-16T02:10:09 |
| virtual_size | None |
+------------------+--------------------------------------+

资源链接:

OpenStack API 快速入门

上一篇:c#控制台使用WebBrowser获取html问题


下一篇:webbrowser ajax 跨域 办法