检查
在进行实例的启动的时候,我们要先确认各个服务是否都启动了,可以通过下面的命令来看端口和服务是否启动
1
2
<code>1、</code><code>ps</code> <code>aux|</code><code>grep</code> <code>python</code>
<code>2、</code><code>netstat</code> <code>-lntup</code>
检查镜像服务
3
4
5
6
<code>[root@linux-node1 ~]</code><code># openstack image list</code>
<code>^L+--------------------------------------+--------+--------+</code>
<code>| ID | Name | Status |</code>
<code>+--------------------------------------+--------+--------+</code>
<code>| 63d8947e-5224-40b6-92e5-8c939e75d45e | cirros | active |</code>
创建网络
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<code>[root@linux-node1 ~]</code><code># openstack network create --share --provider-physical-network public --provider-network-type flat public</code>
<code>+---------------------------+--------------------------------------+</code>
<code>| Field | Value |</code>
<code>| admin_state_up | UP |</code>
<code>| availability_zone_hints | |</code>
<code>| availability_zones | |</code>
<code>| created_at | 2017-01-02T21:19:16Z |</code>
<code>| description | |</code>
<code>| headers | |</code>
<code>| </code><code>id</code> <code>| 7f7b08e7-ea61-433f-bb3d-6195d893558e |</code>
<code>| ipv4_address_scope | None |</code>
<code>| ipv6_address_scope | None |</code>
<code>| mtu | 1500 |</code>
<code>| name | public |</code>
<code>| port_security_enabled | True |</code>
<code>| project_id | 7ae0fb7deb5342d885a07c2c890a1ff4 |</code>
<code>| provider:network_type | flat |</code>
<code>| provider:physical_network | public |</code>
<code>| provider:segmentation_id | None |</code>
<code>| revision_number | 3 |</code>
<code>| router:external | Internal |</code>
<code>| shared | True |</code>
<code>| status | ACTIVE |</code>
<code>| subnets | |</code>
<code>| tags | [] |</code>
<code>| updated_at | 2017-01-02T21:19:16Z |</code>
查看网络
<code>[root@linux-node1 ~]</code><code># openstack network list</code>
<code>+--------------------------------------+--------+---------+</code>
<code>| ID | Name | Subnets |</code>
<code>| 7f7b08e7-ea61-433f-bb3d-6195d893558e | public | |</code>
创建子网
<code>[root@linux-node1 ~]</code><code># openstack subnet create --network public --allocation-pool start=192.168.56.100,end=192.168.56.200 --dns-nameserver 192.168.56.2 --gateway 102.168.56.2 --subnet-range 192.168.56.0/24 public-subnet</code>
<code>+-------------------+--------------------------------------+</code>
<code>| Field | Value |</code>
<code>| allocation_pools | 192.168.56.100-192.168.56.200 |</code>
<code>| cidr | 192.168.56.0</code><code>/24</code> <code>|</code>
<code>| created_at | 2017-01-02T21:26:06Z |</code>
<code>| description | |</code>
<code>| dns_nameservers | 192.168.56.2 |</code>
<code>| enable_dhcp | True |</code>
<code>| gateway_ip | 102.168.56.2 |</code>
<code>| headers | |</code>
<code>| host_routes | |</code>
<code>| </code><code>id</code> <code>| 422abca4-ac78-400f-aa7c-2296c69a1643 |</code>
<code>| ip_version | 4 |</code>
<code>| ipv6_address_mode | None |</code>
<code>| ipv6_ra_mode | None |</code>
<code>| name | public-subnet |</code>
<code>| network_id | 7f7b08e7-ea61-433f-bb3d-6195d893558e |</code>
<code>| project_id | 7ae0fb7deb5342d885a07c2c890a1ff4 |</code>
<code>| revision_number | 2 |</code>
<code>| service_types | [] |</code>
<code>| subnetpool_id | None |</code>
<code>| updated_at | 2017-01-02T21:26:06Z |</code>
子网检查
<code>[root@linux-node1 ~]</code><code># neutron subnet-list</code>
<code>+--------------------------------------+---------------+-----------------+------------------------------------------------------+</code>
<code>| </code><code>id</code> <code>| name | cidr | allocation_pools |</code>
<code>| 422abca4-ac78-400f-aa7c-2296c69a1643 | public-subnet | 192.168.56.0</code><code>/24</code> <code>| {</code><code>"start"</code><code>: </code><code>"192.168.56.100"</code><code>, </code><code>"end"</code><code>: </code><code>"192.168.56.200"</code><code>} |</code>
<code>[root@linux-node1 ~]</code><code># openstack subnet list</code>
<code>+--------------------------------------+---------------+--------------------------------------+-----------------+</code>
<code>| ID | Name | Network | Subnet |</code>
<code>| 422abca4-ac78-400f-aa7c-2296c69a1643 | public-subnet | 7f7b08e7-ea61-433f-bb3d-6195d893558e | 192.168.56.0</code><code>/24</code> <code>|</code>
创建虚拟类型、只能定义不能选
创建mi.nano类型
默认的最小规格的主机需要512 MB内存。对于环境中计算节点内存不足4 GB的,我们推荐创建只需要64 MB的``m1.nano``规格的主机。若单纯为了测试的目的,请使用``m1.nano``规格的主机来加载CirrOS镜像
<code>[root@linux-node1 ~]</code><code># openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano</code>
<code>+----------------------------+---------+</code>
<code>| Field | Value |</code>
<code>| OS-FLV-DISABLED:disabled | False |</code>
<code>| OS-FLV-EXT-DATA:ephemeral | 0 |</code>
<code>| disk | 1 |</code>
<code>| </code><code>id</code> <code>| 0 |</code>
<code>| name | m1.nano |</code>
<code>| os-flavor-access:is_public | True |</code>
<code>| properties | |</code>
<code>| </code><code>ram</code> <code>| 64 |</code>
<code>| rxtx_factor | 1.0 |</code>
<code>| swap | |</code>
<code>| vcpus | 1 |</code>
生成一个键值对
导入``demo``项目凭证
<code>[root@linux-node1 ~]</code><code># . demo-openstack </code>
<code>[root@linux-node1 ~]</code><code># cat demo-openstack </code>
<code>export</code> <code>OS_PROJECT_DOMAIN_NAME=default</code>
<code>export</code> <code>OS_USER_DOMAIN_NAME=default</code>
<code>export</code> <code>OS_PROJECT_NAME=demo</code>
<code>export</code> <code>OS_USERNAME=demo</code>
<code>export</code> <code>OS_PASSWORD=demo</code>
<code>export</code> <code>OS_AUTH_URL=http:</code><code>//192</code><code>.168.56.11:5000</code><code>/v3</code>
<code>export</code> <code>OS_IDENTITY_API_VERSION=3</code>
<code>export</code> <code>OS_IMAGE_API_VERSION=2</code>
2. 生成和添加秘钥对:
<code>[root@linux-node1 ~]</code><code># ssh-keygen -q -N ""</code>
<code>Enter </code><code>file</code> <code>in</code> <code>which</code> <code>to save the key (</code><code>/root/</code><code>.</code><code>ssh</code><code>/id_rsa</code><code>): </code>
<code>[root@linux-node1 ~]</code><code># </code>
<code>[root@linux-node1 ~]</code><code># openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey</code>
<code>+-------------+-------------------------------------------------+</code>
<code>| Field | Value |</code>
<code>| fingerprint | e9:a3:e6:4c:97:73:12:25:ea:8e:39:ea:a0:d5:d2:e6 |</code>
<code>| name | mykey |</code>
<code>| user_id | f0c69bad72b54e0daef92c2295425932 |</code>
另外,你可以跳过执行 <code>ssh-keygen</code> 命令而使用已存在的公钥。
3. 验证公钥的添加
<code>[root@linux-node1 ~]</code><code># openstack keypair list</code>
<code>+-------+-------------------------------------------------+</code>
<code>| Name | Fingerprint |</code>
<code>| mykey | e9:a3:e6:4c:97:73:12:25:ea:8e:39:ea:a0:d5:d2:e6 |</code>
增加安全组规则
添加规则到 <code>default</code> 安全组。
<code>[root@linux-node1 ~]</code><code># openstack security group rule create --proto icmp default</code>
<code>| created_at | 2017-01-02T21:44:26Z |</code>
<code>| direction | ingress |</code>
<code>| ethertype | IPv4 |</code>
<code>| </code><code>id</code> <code>| b4f7536d-86f1-491e-b167-069a09507e2b |</code>
<code>| port_range_max | None |</code>
<code>| port_range_min | None |</code>
<code>| project_id | 9b913d25891849baa55b21d837e9b63d |</code>
<code>| protocol | icmp |</code>
<code>| remote_group_id | None |</code>
<code>| remote_ip_prefix | 0.0.0.0</code><code>/0</code> <code>|</code>
<code>| revision_number | 1 |</code>
<code>| security_group_id | be5584d7-7e14-4bc9-a74c-109f216b09c4 |</code>
<code>| updated_at | 2017-01-02T21:44:26Z |</code>
允许安全 shell (SSH) 的访问:
<code>[root@linux-node1 ~]</code><code># openstack security group rule create --proto tcp --dst-port 22 default</code>
<code>| created_at | 2017-01-02T21:46:29Z |</code>
<code>| </code><code>id</code> <code>| 4572dc39-6723-49f7-9556-c0f90ca7cc96 |</code>
<code>| port_range_max | 22 |</code>
<code>| port_range_min | 22 |</code>
<code>| protocol | tcp |</code>
<code>| updated_at | 2017-01-02T21:46:29Z |</code>
<code>[root@linux-node1 ~]</code><code>#</code>
启动一个实例
如果选择网络选项1,你只能在公网创建实例。如果选择网络选项2,你可以在公网或私网创建实例。
确定实例选项
启动一台实例,您必须至少指定一个类型、镜像名称、网络、安全组、密钥和实例名称。
在控制节点上,获得 <code>admin</code> 凭证来获取只有管理员能执行的命令的访问权限:
<code>root@linux-node1 ~]</code><code># . demo-openstack</code>
2 .一个实例指定了虚拟机资源的大致分配,包括处理器、内存和存储。
列出可用类型:
<code>[root@linux-node1 ~]</code><code># openstack flavor list</code>
<code>+----+---------+-----+------+-----------+-------+-----------+</code>
<code>| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |</code>
<code>| 0 | m1.nano | 64 | 1 | 0 | 1 | True |</code>
您也可以以 ID 引用类型。
3. 列出可用镜像:(这个实例使用``cirros``镜像。)
4.列出可用网络:
<code>+--------------------------------------+--------+--------------------------------------+</code>
<code>| ID | Name | Subnets |</code>
<code>| 7f7b08e7-ea61-433f-bb3d-6195d893558e | public | 422abca4-ac78-400f-aa7c-2296c69a1643 |</code>
5. 列出可用的安全组:
<code>[root@linux-node1 ~]</code><code># openstack security group list </code>
<code>+--------------------------------------+---------+------------------------+----------------------------------+</code>
<code>| ID | Name | Description | Project |</code>
<code>| be5584d7-7e14-4bc9-a74c-109f216b09c4 | default | Default security group | 9b913d25891849baa55b21d837e9</code>
启动云主机
30
31
32
33
34
<code>[root@linux-node1 ~]</code><code># openstack server create --flavor m1.nano --image cirros \</code>
<code>> --nic net-</code><code>id</code><code>=7f7b08e7-ea61-433f-bb3d-6195d893558e --security-group default \</code>
<code>> --key-name mykey demo-instance</code>
<code>+--------------------------------------+-----------------------------------------------+</code>
<code>| Field | Value |</code>
<code>| OS-DCF:diskConfig | MANUAL |</code>
<code>| OS-EXT-AZ:availability_zone | |</code>
<code>| OS-EXT-STS:power_state | NOSTATE |</code>
<code>| OS-EXT-STS:task_state | scheduling |</code>
<code>| OS-EXT-STS:vm_state | building |</code>
<code>| OS-SRV-USG:launched_at | None |</code>
<code>| OS-SRV-USG:terminated_at | None |</code>
<code>| accessIPv4 | |</code>
<code>| accessIPv6 | |</code>
<code>| addresses | |</code>
<code>| adminPass | vLpymTa8sfzK |</code>
<code>| config_drive | |</code>
<code>| created | 2017-01-02T22:01:06Z |</code>
<code>| flavor | m1.nano (0) |</code>
<code>| hostId | |</code>
<code>| </code><code>id</code> <code>| f0778b83-e6f9-41f4-a514-dffe86aff6aa |</code>
<code>| image | cirros (63d8947e-5224-40b6-92e5-8c939e75d45e) |</code>
<code>| key_name | mykey |</code>
<code>| name | demo-instance |</code>
<code>| os-extended-volumes:volumes_attached | [] |</code>
<code>| progress | 0 |</code>
<code>| project_id | 9b913d25891849baa55b21d837e9b63d |</code>
<code>| properties | |</code>
<code>| security_groups | [{u</code><code>'name'</code><code>: u</code><code>'default'</code><code>}] |</code>
<code>| status | BUILD |</code>
<code>| updated | 2017-01-02T22:01:07Z |</code>
<code>| user_id | f0c69bad72b54e0daef92c2295425932 |</code>
检查实例状态
<code>[root@linux-node1 ~]</code><code># openstack server list</code>
<code>+--------------------------------------+---------------+--------+-----------------------+------------+</code>
<code>| ID | Name | Status | Networks | Image Name |</code>
<code>| f0778b83-e6f9-41f4-a514-dffe86aff6aa | demo-instance | ACTIVE | public=192.168.56.104 | cirros |</code>
使用虚拟控制台访问实例
<code>[root@linux-node1 ~]</code><code># openstack console url show demo-instance</code>
<code>+-------+------------------------------------------------------------------------------------+</code>
<code>| Field | Value |</code>
<code>| </code><code>type</code> <code>| novnc |</code>
<code>| url | http:</code><code>//192</code><code>.168.56.11:6080</code><code>/vnc_auto</code><code>.html?token=c88bb128-97de-4a48-bb96-3f97023b3e6e |</code>
<a href="http://s3.51cto.com/wyfs02/M02/8C/69/wKiom1hrcGXy3TfTAADp_KMRGP4867.png-wh_500x0-wm_3-wmp_4-s_2905488079.png" target="_blank"></a>
验证ping外网
这里出现一个小bug,ping不同外网,
添加一条默认路由就可以了
route add default gw 192.168.56.2
本文转自 kesungang 51CTO博客,原文链接:http://blog.51cto.com/sgk2011/1888696,如需转载请自行联系原作者