OpenStack搭建09-实例创建

显示全文:

使用legacy networking 创建实例:

略去中间的存储节点配置,先测试以下实例的创建是否能够成功·。

1,创建一对密钥对:

  • 1),生效demo用户凭据:
source demo-openrc.sh
#demo_openrc.sh内容如下:
root@controller:~# cat demo-openrc.sh 
export OS_TENANT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=*yourpass*
export OS_AUTH_URL=http://controller:5000/v2.0

主要是一些keystone的认证信息。

  • 2),生成密钥对:
$ ssh-keygen   (生成随机数)。
  • 3),添加公钥到openstack环境:这个公钥可以用在创建实例的时候注入,实现无密码登录。

    $ nova keypair-add –pub-key ~/.ssh/id_rsa.pub demo-key

  • 4),查看公钥:

root@controller:~# nova keypair-list
+----------+-------------------------------------------------+
| Name     | Fingerprint                                     |
+----------+-------------------------------------------------+
| demo-key | e8:b2:f8:2b:c1:e8:9d:a8:a8:21:69:94:08:a6:f1:c0 |
+----------+-------------------------------------------------+
创建实例:
  • 1),先查看flavor列表,各种实例类型。
root@controller:~# 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      |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+

可以看到各种可以创建的虚拟机的类型。我们创建的第一个实例采用m1.tiny这个vm类型。

  • 2),查看当前可用的vm镜像:
root@controller:~# nova image-list
+--------------------------------------+---------------------+--------+--------+
| ID                                   | Name                | Status | Server |
+--------------------------------------+---------------------+--------+--------+
| e60963d5-fcb3-4ebb-b41e-51aa100adfcb | centos6.6x64        | ACTIVE |        |
| 0eb0e87c-450f-4a68-b4d0-d8f6abf26449 | cirros-0.3.3-x86_64 | ACTIVE |        |
| c4b8af42-dea4-42e8-bb2a-daaa3d18117f | ubuntu server       | ACTIVE |        |
+--------------------------------------+---------------------+--------+--------+

我使用cirros-0.3.3-x86_64这个镜像创建第一个实例。

  • 3),查看当前可用的网络:(在控制节点上)
root@controller:~# source admin-openrc.sh
root@controller:~# nova net-list
+--------------------------------------+----------+------------------+
| ID                                   | Label    | CIDR             |
+--------------------------------------+----------+------------------+
| e7972845-3a38-49bb-ae53-56c4f71dc837 | demo-net | 192.168.0.176/28 |
+--------------------------------------+----------+------------------+
  • 4),列出有效的安全组:
root@controller:~# nova secgroup-list
+----+---------+-------------+
| Id | Name    | Description |
+----+---------+-------------+
| 2  | default | default     |
+----+---------+-------------+
  • 5),创建一个实例:
$ nova boot --flavor m1.tiny --image cirros-0.3.3-x86_64 --nic net-id=
DEMO_NET_ID \
--security-group default --key-name demo-key demo-instance1

需要为其指定网卡,实例大小模型,镜像,安全组,公钥信息等。(注意,如果想创建一个实例,并且能够ping通,ssh登录,要先对defualt安全组进行修改,放行对应的数据包,可以通过命令或者web界面直接修改)。

root@controller:~# nova boot --flavor m1.tiny --image cirros-0.3.3-x86_64 --nic net-id=e7972845-3a38-49bb-ae53-56c4f71dc837 \
> --security-group default --key-name demo-key demo-instance2
+--------------------------------------+------------------------------------------------------------+
| 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-00000012                                          |
| 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                            | wfTZg7pi6G5w                                               |
| config_drive                         |                                                            |
| created                              | 2015-05-20T07:15:16Z                                       |
| flavor                               | m1.tiny (1)                                                |
| hostId                               |                                                            |
| id                                   | 2b6ce589-b316-42e1-a49c-68ff08d854c3                       |
| image                                | cirros-0.3.3-x86_64 (0eb0e87c-450f-4a68-b4d0-d8f6abf26449) |
| key_name                             | demo-key                                                   |
| metadata                             | {}                                                         |
| name                                 | demo-instance2                                             |
| os-extended-volumes:volumes_attached | []                                                         |
| progress                             | 0                                                          |
| security_groups                      | default                                                    |
| status                               | BUILD                                                      |
| tenant_id                            | 8e03709a24154d9d99f7a3e16a1da53f                           |
| updated                              | 2015-05-20T07:15:16Z                                       |
| user_id                              | 3471b47ae4d942cdb582e4550e028a9b                           |
+--------------------------------------+------------------------------------------------------------+
  • 6),查看实例的状态;
root@controller:~# nova list
+--------------------------------------+----------------+--------+------------+-------------+------------------------+
| ID                                   | Name           | Status | Task State | Power State | Networks               |
+--------------------------------------+----------------+--------+------------+-------------+------------------------+
| 82899c7a-b883-454a-887c-c714f73bbe19 | demo-instance1 | ACTIVE | -          | Running     | demo-net=192.168.0.180 |
| 2b6ce589-b316-42e1-a49c-68ff08d854c3 | demo-instance2 | ACTIVE | -          | Running     | demo-net=192.168.0.179 |
+--------------------------------------+----------------+--------+------------+-------------+------------------------+

为了能够访问vm,我们可以通过网页vnc打开vm的控制台。或者ssh登录上去,这里先使用vnc:
请求vnc地址。

root@controller:~#  nova get-vnc-console demo-instance2 novnc
+-------+------------------------------------------------------------------------------------+
| Type  | Url                                                                                |
+-------+------------------------------------------------------------------------------------+
| novnc | http://192.168.0.146:6080/vnc_auto.html?token=58fa034e-05b0-408f-b548-a316fc05c4da |
+-------+------------------------------------------------------------------------------------+

然后将地址复制粘贴到浏览器中(这里使用的是chrome)。可以看到vm的控制台:

vm1

验证demo-net的网络:从vm上测试能否上外网:

vm2

##修改安全组的方法:

1,给default安全组添加规则:
a, 允许ping包;

$ nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0  

这句的含义是在安全组default中添加一条规则,允许来自任何ip任何端口的icmp包

b,允许ssh访问:

$ nova secgroup-add-rule default tcp 22 22 0.0.0.0/0

因为ssh是基于tcp22号端口进行访问的,所以这里进行放行任何ip的tcp22号端口流量。

2,从控制节点或者任何一个在外网的主机上测试一下挽留过的连通性。

vm3

因为192.168.0.179这个ip有冲突,还是使用180这个ip做测试。

3,最后在控制节点上使用ssh访问vm实例。
这个测试用的镜像,默认的用户名和密码在开启启动的最后都输出来了,我们可以使用nova console-log vm 查看日志输出
信息确定用户名和密码,默认是用户名:cirros 密码:cubswin:)

vm4

到这里,最基本的vm创建,vm访问外网,网络连通性都已经完成。

官方下载centos的qcow2格式镜像的地址: http://cloud.centos.org/centos/6/images/