OpenStack Folsom安装过程详解

相信刚接触OpenStack的新手,在安装OpenStack的过程中都会叫苦不迭。开源软件就是有这个特点,比较难安装,使用起来不够友好。况且还是如此庞大的OpenStack。作者是按照OpenStack官方文档(官网下载下来pdf版本的名字是openstack-install-guide-apt-trunk.pdf)来进行安装,尝试了两遍。第一遍碰到各种问题。纠结了很久,问题更多,最终第二次安装成功。

下面就是作者对成功安装过程进行进行详细的介绍,包括碰两遍安装中碰到的各种问题,希望能给大家带来帮助。安装过程严格按照官方文档Appendix B的步骤,同时还会指出文档中明显的错误。

安装环境:Ubuntu Server 12.04 LTS。全程使用root用户进行操作。

一、准备工作

1. 配置ubuntu源仓库

echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main >> /etc/apt/sources.list.d/folsom.list(Ubuntu 12.04版本默认的OpenStack源是Essex版本,Ubuntu 12.10默认的是Folsom版本)

2. 安装ntp等服务(ntp非常重要,第一次安装失败与没有安装ntp服务有很大的关系,当时的想法是在一台机器上进行安装没必要进行时间同步。)

apt-get install vlan bridge-utils ntp mysql-server python-mysqldb

3. 配置数据库

mysql -u root -phengtian -e “create database nova;”

mysql -u root -phengtian -e “create database glance;”

mysql -u root -phengtian -e “create database cinder;”

mysql -u root -phengtian -e “create database keystone;”

mysql -u root -phengtian -e “create database ovs_quantum;”

4. 配置数据库访问权限

grant all privileges on nova.* to nova@”localhost” identified by “hengtian”;

grant all privileges on nova.* to nova@”%” identified by “hengtian”;

grant all privileges on glance.* to glance@”localhost” identified by “hengtian”;

grant all privileges on glance.* to glance@”%” identified by “hengtian”;

grant all privileges on cinder.* to cinder@”localhost” identified by “hengtian”;

grant all privileges on cinder.* to cinder@”%” identified by “hengtian”;

grant all privileges on keystone.* to keystone@”localhost” identified by “hengtian”;

grant all privileges on keystone.* to keystone@”%” identified by “hengtian”;

grant all privileges on ovs_quantum.* to ovs_quantum@”localhost” identified by “hengtian”;

grant all privileges on ovs_quantum.* to ovs_quantum@”%” identified by “hengtian”;

二、安装和配置keystone
(比较繁琐的一部分,关系到后边各个部件的安装成败,要绝对的耐心,细心)

1. 安装keystone相关软件包

apt-get install keystone python-keystone python-keystoneclient

2. 配置相关文件

更改/etc/keystone/keystone.conf为

admin_token = admin (admin_token的值可以为任意字符串,但后面使用过程中必须保持一致)

connection = mysql://keystone:[email protected]/keystone (更改成与前面的安装相对应)

3. 同步数据库

keystone-manage db_sync

4. 设置环境变量(后面的操作都依赖于此环境变量)

可以有很多种设置方法,我是将其加在/root/.bashrc文件中

export SERVICE_TOKEN=admin (和前面/etc/keystone/keystone.conf中一致)

export OS_TENANT_NAME=admin (与后面配置的两个tenant中的系统级tenant一致,我的安装中两个tenant一个是admin另一个是service,其中admin是系统级的tenant,service是各个服务所使用的tenant)

export OS_USERNAME=admin (admin用户,后面有相应的创建过程)

export OS_PASSWORD=hengtian (注意与后面创建过程的设置保持一致)

export OS_AUTH_URL=http://172.16.7.33:5000/v2.0/ (根据自己机器的IP进行设置)

export SERVICE_ENDPOINT=http://172.16.7.33:35357/v2.0/

配置完注意用source命令执行一下。

5. 创建keystone中各种用户

keystone user-create –name admin –pass hengtian –email [email protected]

+———-+————————————————————————————————————————-+
| Property |    Value    |
+———-+————————————————————————————————————————-+
|  email   |                         [email protected]                        |
| enabled  |     True    |
|    id    |                  3c3e7c6b8f87441682c61ca9afdac427                 |
|   name   |    admin    |
| password | $6$rounds=40000$UxHh1wcIAIhSGP89$5ajPK3zVsUt9638Hzxh7hVx/4r4vlFt5PkrVNuaFCshmH2tgcOoYx4sYQ7Pim4/8vLi.7wE6askAOvyfpB4V./ |
| tenantId |             |
+———-+————————————————————————————————————————-+

keystone user-create –name nova –pass hengtian –email [email protected]
+———-+————————————————————————————————————————-+
| Property |    Value    |
+———-+————————————————————————————————————————-+
|  email   |                         [email protected]                         |
| enabled  |     True    |
|    id    |                  6fad36432831458c85ac3ad8d0a73acd                 |
|   name   |     nova    |
| password | $6$rounds=40000$SkHcKJQ.JdgAhPXU$iVJkygH0eH5.C94HISxdU80tYec3rzWxrG1Osry3s/a5eCnp8fEcis2ehTG5bExeGyYXPHXYCHFbnf42J1YRA1 |
| tenantId |             |
+———-+————————————————————————————————————————-+

keystone user-create –name glance –pass hengtian –email [email protected]
+———-+————————————————————————————————————————-+
| Property |    Value    |
+———-+————————————————————————————————————————-+
|  email   |                        [email protected]                        |
| enabled  |     True    |
|    id    |                  aa58b20fc97b45129a07b16d196b7146                 |
|   name   |    glance   |
| password | $6$rounds=40000$5sJ/dGOEnF4lQVNT$SYhjcgbXc.kiZ5UKymjy.3qbTlprGZbVv9gm45vOHMDgDCrsBBAp8vNsoHPuiSP9fLcjaRTYKav3zlMJKUE1f1 |
| tenantId |             |
+———-+————————————————————————————————————————-+

keystone user-create –name swift –pass hengtian –email [email protected]
+———-+————————————————————————————————————————-+
| Property |    Value    |
+———-+————————————————————————————————————————-+
|  email   |                         [email protected]                        |
| enabled  |     True    |
|    id    |                  89770a4a149c434fa13c553e37dc85dc                 |
|   name   |    swift    |
| password | $6$rounds=40000$6hm4ze3wU9VGKqqq$yMjMERd3trQ5v2GPkOP24zp2xEa4ZFAhj.MXwabml1asFbX1g.fMLbsFq5MmBHW88siNvDW4rj93gjKeiT3n3/ |
| tenantId |             |
+———-+————————————————————————————————————————-+

keystone user-create –name cinder –pass hengtian –email [email protected]
+———-+————————————————————————————————————————-+
| Property |    Value    |
+———-+————————————————————————————————————————-+
|  email   |                        [email protected]                        |
| enabled  |     True    |
|    id    |                  f1320c4834144fc38ef30028e495bca2                 |
|   name   |    cinder   |
| password | $6$rounds=40000$krDNGnLAxmZNGSeH$JD/qtR1wLJcKTwrqv6XULaUxfCseI5/Ib.aH4C9DPLFErLhJbtUwUrrzfVqrCcTpKe7c/RnBKPb6A35GNDpIS0 |
| tenantId |             |
+———-+————————————————————————————————————————-+

keystone user-create –name quantum –pass hengtian –email [email protected]
+———-+————————————————————————————————————————-+
| Property |    Value    |
+———-+————————————————————————————————————————-+
|  email   |                        [email protected]                       |
| enabled  |     True    |
|    id    |                  c5862839038643d4a92b1a8eeaa54ee5                 |
|   name   |   quantum   |
| password | $6$rounds=40000$DsjQ6jwMkYTtNZ9i$m2VZ2hpWoGxDOEs2CBS9MEyfXtmns1tSBDK4CrucRPowg5VG95qI6nnGQLxFfvObd/HQnmmt1J1p8GaZ32sqo0 |
| tenantId |             |
+———-+————————————————————————————————————————-

6. 创建keystone中的role(admin和Member)

keystone role-create –name admin
+———-+———————————-+
| Property |              Value               |
+———-+———————————-+
|    id    | 0051009152bc4cef83a9b663ed525ccf |
|   name   |              admin               |
+———-+———————————-+

keystone role-create –name Member
+———-+———————————-+
| Property |              Value               |
+———-+———————————-+
|    id    | f02f20d9b75a4865b73a201048409187 |
|   name   |              Member              |
+———-+———————————-+

7. 创建两个tenant(admin和service)

keystone tenant-create –name=service

+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
| description |                                  |
|   enabled   |               True               |
|      id     | ff3f53f21924453cbe9611102fd963f2 |
|     name    |             service              |
+————-+———————————-+

keystone tenant-create –name=admin

+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
| description |                                  |
|   enabled   |               True               |
|      id     | 241961b5d5494434afd4ab708d1b7f7f |
|     name    |              admin               |
+————-+———————————-+

8. 创建各种service(每个service对应OpenStack中的相应组件的相关服务)

keystone service-create –name nova –type compute –description “OpenStack Compute Service”

+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
| description |    OpenStack Compute Service     |
|      id     | 6bf00246516b4172a5c882e10f72f1bb |
|     name    |               nova               |
|     type    |             compute              |
+————-+———————————-+

keystone service-create –name volume –type volume –description “OpenStack Volume Service”

+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
| description |     OpenStack Volume Service     |
|      id     | 930ede7cd18f4e008db72e8c8cbdf860 |
|     name    |              volume              |
|     type    |              volume              |
+————-+———————————-+

keystone service-create –name glance –type image –description “OpenStack Image Service”

+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
| description |     OpenStack Image Service      |
|      id     | 65bc364c1eb94cc6a30f2a331d070196 |
|     name    |              glance              |
|     type    |              image               |
+————-+———————————-+

keystone service-create –name swift –type object-store –description “OpenStack Storage Service”

+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
| description |    OpenStack Storage Service     |
|      id     | f39b6a0b5ab54b8ba0d3dbf56498cdd7 |
|     name    |              swift               |
|     type    |           object-store           |
+————-+———————————-+

keystone service-create –name keystone –type identity –description “OpenStack Identity Service”

+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
| description |    OpenStack Identity Service    |
|      id     | 011e43f95bb04dd4b7d682ea9cab5fa9 |
|     name    |             keystone             |
|     type    |             identity             |
+————-+———————————-+

keystone service-create –name ec2 –type ec2 –description “EC2 Service”

+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
| description |           EC2 Service            |
|      id     | 05ad50f2c49543358dbd806baa813939 |
|     name    |               ec2                |
|     type    |               ec2                |
+————-+———————————-+

keystone service-create –name cinder –type volume –description “Cinder Service”

+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
| description |          Cinder Service          |
|      id     | d19f50b6bd844c58a76457d28c180277 |
|     name    |              cinder              |
|     type    |              volume              |
+————-+———————————-+

keystone service-create –name quantum –type network –description “OpenStack Networking service”

+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
| description |   OpenStack Networking service   |
|      id     | 9eea3825274c4fa185b038e69719d33e |
|     name    |             quantum              |
|     type    |             network              |
+————-+———————————-+

9. 创建与service相对应的endpoint

//////////////For Nova-api
keystone endpoint-create –region myregion –service_id \
6bf00246516b4172a5c882e10f72f1bb –publicurl “http://172.16.9.33:8774/v2/%(tenant_id)s” \
–adminurl “http://172.16.7.33:8774/v2/%(tenant_id)s” –internalurl “http://172.16.7.33:8774/v2/%(tenant_id)s”
+————-+——————————————+
|   Property  |                  Value                   |
+————-+——————————————+
|   adminurl  | http://172.16.7.33:8774/v2/%(tenant_id)s |
|      id     |     88d1df3ff692499e865b12f474e7b412     |
| internalurl | http://172.16.7.33:8774/v2/%(tenant_id)s |
|  publicurl  | http://172.16.9.33:8774/v2/%(tenant_id)s |
|    region   |                 myregion                 |
|  service_id |     6bf00246516b4172a5c882e10f72f1bb     |
+————-+——————————————+

//////////////For Nova-volume
keystone endpoint-create –region myregion –service_id \
930ede7cd18f4e008db72e8c8cbdf860 –publicurl “http://172.16.9.33:8776/v1/%(tenant_id)s” \
–adminurl “http://172.16.7.33:8776/v1/%(tenant_id)s” –internalurl “http://172.16.7.33:8776/v1/%(tenant_id)s”
+————-+——————————————+
|   Property  |                  Value                   |
+————-+——————————————+
|   adminurl  | http://172.16.7.33:8776/v1/%(tenant_id)s |
|      id     |     bc4e5342a8094427a56e75214ef18b8d     |
| internalurl | http://172.16.7.33:8776/v1/%(tenant_id)s |
|  publicurl  | http://172.16.9.33:8776/v1/%(tenant_id)s |
|    region   |                 myregion                 |
|  service_id |     930ede7cd18f4e008db72e8c8cbdf860     |
+————-+——————————————+

//////////////For Glance
keystone endpoint-create –region myregion –service_id \
65bc364c1eb94cc6a30f2a331d070196 –publicurl “http://172.16.7.33:9292/v1” \
–adminurl “http://172.16.7.33:9292/v1” –internalurl “http://172.16.7.33:9292/v1”
+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
|   adminurl  |    http://172.16.7.33:9292/v1    |
|      id     | 2c8f290bbe0d48a595320a18ab49dda1 |
| internalurl |    http://172.16.7.33:9292/v1    |
|  publicurl  |    http://172.16.7.33:9292/v1    |
|    region   |             myregion             |
|  service_id | 65bc364c1eb94cc6a30f2a331d070196 |
+————-+———————————-+

//////////////For Swift
keystone endpoint-create –region myregion –service_id \
f39b6a0b5ab54b8ba0d3dbf56498cdd7 –publicurl “http://172.16.9.33:8080/v1/AUTH_%(tenant_id)s” \
–adminurl “http://172.16.7.33:8080/v1” –internalurl “http://172.16.7.33:8080/v1/AUTH_%(tenant_id)s”
+————-+———————————————–+
|   Property  |                     Value                     |
+————-+———————————————–+
|   adminurl  |           http://172.16.7.33:8080/v1          |
|      id     |        e16707dc1dee462f8f6b33e48c91b731       |
| internalurl | http://172.16.7.33:8080/v1/AUTH_%(tenant_id)s |
|  publicurl  | http://172.16.9.33:8080/v1/AUTH_%(tenant_id)s |
|    region   |                    myregion                   |
|  service_id |        f39b6a0b5ab54b8ba0d3dbf56498cdd7       |
+————-+———————————————–+

//////////////For Identity Service
keystone endpoint-create –region myregion –service_id \
011e43f95bb04dd4b7d682ea9cab5fa9 –publicurl “http://172.16.9.330:5000/v2.0” \
–adminurl “http://172.16.7.33:35357/v2.0” –internalurl “http://172.16.7.33:5000/v2.0”
+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
|   adminurl  |  http://172.16.7.33:35357/v2.0   |
|      id     | 99770df1df6842d69e276ae2b685377f |
| internalurl |   http://172.16.7.33:5000/v2.0   |
|  publicurl  |  http://172.16.9.330:5000/v2.0   |
|    region   |             myregion             |
|  service_id | 011e43f95bb04dd4b7d682ea9cab5fa9 |
+————-+———————————-+

//////////////For EC2_compatibility
keystone endpoint-create –region myregion –service_id \
05ad50f2c49543358dbd806baa813939 –publicurl “http://172.16.9.33:8773/services/Cloud” \
–adminurl “http://172.16.7.33:8773/services/Admin” –internalurl “http://172.16.7.33:8773/services/Cloud”
+————-+—————————————-+
|   Property  |                 Value                  |
+————-+—————————————-+
|   adminurl  | http://172.16.7.33:8773/services/Admin |
|      id     |    06b55bf439e94504991cd9064725cd8b    |
| internalurl | http://172.16.7.33:8773/services/Cloud |
|  publicurl  | http://172.16.9.33:8773/services/Cloud |
|    region   |                myregion                |
|  service_id |    05ad50f2c49543358dbd806baa813939    |
+————-+—————————————-+

//////////////For Cinder
keystone endpoint-create –region myregion –service_id \
d19f50b6bd844c58a76457d28c180277 –publicurl “http://172.16.9.33:8776/v1/%(tenant_id)s” \
–adminurl “http://172.16.7.33:8776/v1/%(tenant_id)s” –internalurl “http://172.16.7.33:8776/v1/%(tenant_id)s”
+————-+——————————————+
|   Property  |                  Value                   |
+————-+——————————————+
|   adminurl  | http://172.16.7.33:8776/v1/%(tenant_id)s |
|      id     |     ebd662228be8457683960b8cda361594     |
| internalurl | http://172.16.7.33:8776/v1/%(tenant_id)s |
|  publicurl  | http://172.16.9.33:8776/v1/%(tenant_id)s |
|    region   |                 myregion                 |
|  service_id |     d19f50b6bd844c58a76457d28c180277     |
+————-+——————————————+

//////////////For Quantum
keystone endpoint-create –region myregion –service-id \
9eea3825274c4fa185b038e69719d33e –publicurl “http://172.16.9.33:9696/v2” \
–adminurl “http://172.16.7.33:9696/v2” –internalurl “http://172.16.7.33:9696/v2”
+————-+———————————-+
|   Property  |              Value               |
+————-+———————————-+
|   adminurl  |    http://172.16.7.33:9696/v2    |
|      id     | 682dfbef6b494d32ad941d755d79c86a |
| internalurl |    http://172.16.7.33:9696/v2    |
|  publicurl  |    http://172.16.9.33:9696/v2    |
|    region   |             myregion             |
|  service_id | 9eea3825274c4fa185b038e69719d33e |
+————-+———————————-+

10. 为各个用户加入对应的role(注意user_id, role_id以及tenant_id与前面的保持一致)

//////////////User admin <> role admin <> tenant admin
keystone user-role-add –user_id 3c3e7c6b8f87441682c61ca9afdac427 –role_id \
0051009152bc4cef83a9b663ed525ccf –tenant_id 241961b5d5494434afd4ab708d1b7f7f

//////////////User nova <> role admin <> tenant service
keystone user-role-add –user_id 6fad36432831458c85ac3ad8d0a73acd –role_id \
0051009152bc4cef83a9b663ed525ccf –tenant_id ff3f53f21924453cbe9611102fd963f2

//////////////User glance <> role admin <> tenant service
keystone user-role-add –user_id aa58b20fc97b45129a07b16d196b7146 –role_id \
0051009152bc4cef83a9b663ed525ccf –tenant_id ff3f53f21924453cbe9611102fd963f2

//////////////User swift <> role admin <> tenant service
keystone user-role-add –user_id 89770a4a149c434fa13c553e37dc85dc –role_id \
0051009152bc4cef83a9b663ed525ccf –tenant_id ff3f53f21924453cbe9611102fd963f2

//////////////User admin <> role Member <> tenant admin
keystone user-role-add –user_id 3c3e7c6b8f87441682c61ca9afdac427 –role_id \
f02f20d9b75a4865b73a201048409187 –tenant_id 241961b5d5494434afd4ab708d1b7f7f

//////////////User cinder <> role admin <> tenant service
keystone user-role-add –user_id f1320c4834144fc38ef30028e495bca2 –role_id \
0051009152bc4cef83a9b663ed525ccf –tenant_id ff3f53f21924453cbe9611102fd963f2

//////////////User quantum <> role admin <> tenant service
keystone user-role-add –user_id c5862839038643d4a92b1a8eeaa54ee5 –role_id \
0051009152bc4cef83a9b663ed525ccf –tenant_id ff3f53f21924453cbe9611102fd963f2

//////////////User swift <> role Member <> tenant service
keystone user-role-add –user_id 89770a4a149c434fa13c553e37dc85dc –role_id \
f02f20d9b75a4865b73a201048409187 –tenant_id ff3f53f21924453cbe9611102fd963f2
三、安装和配置glance
1. 安装glance相关组件

apt-get install glance glance-api python-glanceclient glance-common \
glance-registry python-glance

2. 编辑/etc/glance/glance-api-paste.ini文件,主要是(filter authoken)这一块,在后面的其他组件(nova, cinder等)也会有相应的xxx-paste.ini文件在编辑的时候也只需要编辑filter authoken这块内容

[filter:authtoken]
paste.filter_factory = keystone.middleware.auth_token:filter_factory
auth_host = 172.16.7.33
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = hengtian

3. 编辑/etc/glance/glance-registry-paste.ini文件

[filter:authtoken]
paste.filter_factory = keystone.middleware.auth_token:filter_factory
auth_host = 172.16.7.33
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = hengtian

4. 编辑/etc/glance/glance-api.conf文件

sql_connection = mysql://glance:[email protected]/glance

[paste_deploy]
flavor = keystone(此项如果之前没有,在文件末尾加入)

5. 编辑/etc/glance/glance-registry.conf文件

sql_connection = mysql://glance:[email protected]/glance

6. 同步数据库,重启服务

service glance-api stop
service glance-registry stop (在同步之前先关闭相应服务)
glance-manage db_sync
service glance-api restart
service glance-registry restart

7. 检查安装

glance index

如果此命令执行的结果是类似于mysql数据库的表,有相应的列名而结果为空那么就是安装成功了。

ID                                   Name                           Disk Format          Container Format     Size
———————————— —————————— ——————– ——————– ————–

glance安装小结:

glance安装相对于后面的nova和swift配置相对而言比较简单,我在第一次安装过程中没有遇到错误,但第二次安装一直报”401 Unauthorized”错误,主要是用户认证的问题。这个问题的原因是xxx-paste.ini文件配置有问题。

首先,在xxx.conf中要包含config_file = /etc/glance/xxx-paste.ini,且在xxx.conf中不进行权限认证相关的配置,如果原来存在要删除掉。

然后,在xxx-paste.ini检查:

admin_tenant_name = service
admin_user = glance
admin_password = hengtian

在官方文档中Appendix B中配置就有错误,其admin_user = admin,我之前尝试这样行不通。
四、安装和配置nova

1. 安装相关组件包

apt-get install nova-api nova-cert nova-compute nova-compute-qemu nova-doc \
nova-network nova-objectstore nova-scheduler nova-volume rabbitmq-server \
novnc nova-consoleauth

2. 修改相应文件的权限

chown -R nova.nova /etc/nova
chmod 644 /etc/nova/nova.conf

3. 配置/etc/nova/nova.conf文件

该文件的配置很重要,配置不好后面6个nova先关的服务都有可能无法正常启动。而且这个文件安装完成后生成的版本内容很少,所以一般都要自己替换掉,而不是在原有基础上改动。这里贴一个我使用的能正常工作的版本。

[DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/run/lock/nova
verbose=True
api_paste_config=/etc/nova/api-paste.ini
scheduler_driver=nova.scheduler.simple.SimpleScheduler
s3_host=172.16.7.33
ec2_host=172.16.7.33
ec2_dmz_host=172.16.7.33
rabbit_host=172.16.7.33
cc_host=172.16.7.33
nova_url=http://172.16.7.33:8774/v1.1/
sql_connection=mysql://nova:[email protected]/nova
ec2_url=http://172.16.7.33:8773/services/Cloud
# Auth
use_deprecated_auth=false
auth_strategy=keystone
keystone_ec2_url=http://172.16.7.33:5000/v2.0/ec2tokens
# Imaging service
glance_api_servers=172.16.7.33:9292
image_service=nova.image.glance.GlanceImageService
# Virt driver
connection_type=libvirt
libvirt_type=qemu
libvirt_use_virtio_for_bridges=true
start_guests_on_host_boot=false
resume_guests_state_on_host_boot=false
# Vnc configuration
novnc_enabled=true
novncproxy_base_url=http://172.16.7.33:6080/vnc_auto.html
novncproxy_port=6080
vncserver_proxyclient_address=127.0.0.1
vncserver_listen=0.0.0.0
# Network settings
dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
network_manager=nova.network.manager.VlanManager
public_interface=eth0
vlan_interface=eth1
fixed_range=192.168.4.32/27
routing_source_ip=172.16.9.33
network_size=32
force_dhcp_release=True
rootwrap_config=/etc/nova/rootwrap.conf
# Cinder #
volume_api_class=nova.volume.cinder.API
enabled_apis=ec2,osapi_compute,metadata
osapi_volume_listen_port=5900

4. 修改/etc/nova//etc/nova/api-paste.ini

[filter:authtoken]

auth_host = 172.16.7.33
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = hengtian
signing_dirname = /tmp/keystone-signing-nova

5. 同步数据库配置

nova-manage db sync

6. 建立一个网络

nova-manage network create private –fixed_range_v4=192.168.4.32/27 \
–num_networks=1 –bridge=br100 –bridge_interface=eth0 –network_size=32 –vlan 100

(官网文档没有加–vlan 选项,我装的两次没加这个选项都出错,加上这个选项正常工作)

7. 重启相关服务

cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done
service open-iscsi restart
service novnc restart

8. 验证服务启动是否成功

nova-manage service list

如果出现nova-consoleauth, nova-scheduler, nova-compute, nova-network, nova-cert, nova-volume六大服务,并且每个服务的状态都是笑脸(:))则nova相关服务安装成功。如果有非笑脸(XXX)状态则先尝试对应的未启动的xxx服务,运行start nova-xxx命令。如果还是不行则认真检查/var/log/nova/目录下的日志,查看ntp是否安装正常。本人碰到过在ntp没有正常安装的情况下相关的服务不能正常启动,重新安装配置ntp之后一切正常。

五、小结

至此,nova服务已经安装完成,后面可以上传镜像然后运行虚拟机,这里就不作详细叙述了,后面还会有cinder的安装和配置,我的安装使用环境用到了nova-volume,系统能正常使用,所以对cinder的安装配置也不做详叙。其配置文件结构大致与glance和nova配置相同,相信nova和glance配置正确了cinder的成功配置也不难。

你可能感兴趣的:(OpenStack Folsom安装过程详解)