Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9311361
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 云计算

2014-02-17 11:32:04

 

openstack essex版安装(1)——服务器分配

分类: openstack 1761人阅读 评论(0) 收藏 举报


操作系统我用的是ubuntu 12.04,每台机子都配了ntp。

openstack安装是个很麻烦的工作,本文档是我自己安装的记录。在此感谢下liangbo.me的博主,他的安装文档给了我很大的帮助,我就是基于他的文档来的。博客地址:。

我使用了6台电脑来安装openstack,分配如下:


keystone

Host:keystone

ip:192.168.0.106

mysql, keystone

Swift

Host:swift1

ip:192.168.0.110

Proxy-server, account-server, container-server, object-server

Host:swift2

ip:192.168.0.111

account-server, container-server, object-server

Glance

Host:glance

ip:192.168.0.112

Glance-api, glance-registry

Compute

Host:compute1

ip: 192.168.0.114

rabbitmq-server bridge-utils compute-control相关组件

Host:compute2

ip: 192.168.0.109

Nova-compute

dashboard

Host:compute1

ip: 192.168.0.114

openstack-dashboard



 

openstack essex版安装(2)——keystone

分类: openstack 2206人阅读 评论(0) 收藏 举报

keystone是openstack中用于身份验证的项目,任何服务请求需要经过它的验证获得服务的endpoint。具体作用请看相关官方文档。这里我使用的是mysql来存储keystone的数据。


keystone

Host:keystone

ip:192.168.0.106

mysql, keystone



1、安装
 1)安装数据库
sudo apt-get install mysql-server mysql-client python-mysqldb
    进/etc/mysql/my.cnf里,将bind-address=127.0.0.1改成 0.0.0.0。这样远程主机就可以连接上这个mysql。
    重启mysql服务。sudo service mysql restart
2)安装keystone
?  安装软件
sudo apt-get install keystone
创建keystone数据库,并创建用户以及分配权限。
create database keystone;
grant all on keystone.* to 'keystone'@'%' identified by 'keystonepwd';


?  配置keystone
配置keystone,修改/etc/keystone/keystone.conf文件:
[sql]
#connection = sqlite:////var/lib/keystone/keystone.db
connection = mysql://keystone:keystonepwd@192.168.0.106/keystone


这里注意一下该文件里的这部份信息,记住admin_token参数,以后会用的上,这个参数是用来访问keystone服务的。默认是ADMIN,也可以改成别的。
[DEFAULT]
public_port = 5000
admin_port = 35357
admin_token = ADMIN
compute_port = 8774
verbose = True
debug = True
log_config =/etc/keystone/logging.conf


重启keystone服务
sudo service keystone restart
同步数据库,
sudo keystone-manage db_sync
然后去数据库里看,
mysql>show tables;
 
+------------------------+
|Tables_in_keystone     |
+------------------------+
|ec2_credential         |
|endpoint               |
|metadata               |
|migrate_version        |
|role                   |
|service                |
|tenant                 |
|token                  |
|user                   |
|user_tenant_membership |
+------------------------+


2、使用keystone
导入环境变量,当然也可以在每次执行keystone命令时加上这方面的参数,keystone 命令格式参见它的help
export SERVICE_TOKEN=ADMIN
export SERVICE_ENDPOINT=


添加tenant:
keystone tenant-create --name adminTenant --description "Admin Tenant"--enabled true
keystone tenant-list
+----------------------------------+-------------+---------+
|                id                |     name   | enabled |
+----------------------------------+-------------+---------+
|72a95ab302cc42d59e6f414769dcfec7 | adminTenant | True    |
+----------------------------------+-------------+---------+


添加user:
keystone user-create --tenant_id 72a95ab302cc42d59e6f414769dcfec7 --name admin --passopenstack --enabled true
keystone user-list
+----------------------------------+---------+-------+-------+
|                id                | enabled | email |  name |
+----------------------------------+---------+-------+-------+
|4fd5ba059a6945c0a43ff63b0140b0a9 | True   | None  | admin |
+----------------------------------+---------+-------+-------+


添加role
keystone role-create --name admin
keystone role-list
+----------------------------------+-----------+
|                id                |    name  |
+----------------------------------+-----------+
|675b96a12d834021b519ef50502a5e5e | admin |
+----------------------------------+-----------+


将这三者关联
keystone user-role-add --user 4fd5ba059a6945c0a43ff63b0140b0a9 --tenant_id72a95ab302cc42d59e6f414769dcfec7 --role 675b96a12d834021b519ef50502a5e5e


这样就ok了。测试一下,用curl工具测试。
       sudo apt-get install curl
       我们先输入一个错误的密码试试
curl-d '{"auth": {"tenantName": "adminTenant","passwordCredentials":{"username": "admin","password": "wrong"}}}' -H"Content-type: application/json" /tokens| python -mjson.tool
       返回结果
{
    "error":{
        "code":401, 
        "message":"Invalid user / password", 
        "title":"Not Authorized"
    }
}
    如果用户名/密码都正确的话
curl -d'{"auth": {"tenantName": "adminTenant","passwordCredentials":{"username": "admin","password": "openstack"}}}' -H "Content-type:application/json" /tokens | python-mjson.tool
    就会返回很多信息,如token、user等,内容太多了,这里我就不贴了。


 

openstack essex版安装(3)——glance

分类: openstack 1049人阅读 评论(0) 收藏 举报

      glance是openstack的镜像服务项目。


Glance

Host:glance

ip:192.168.0.112

glance-api, glance-registry



1、安装


sudo apt-get install keystone //glance需要使用keystone.middleware.auth_token组件。

sudo apt-get install python-mysqldb //glance需要MySQLdb模块

sudo apt-get install glance

查看进程,可以看到glance-api和glance-registry 2个进程。

创建glance数据库,我们的数据库还试用

create database glance;

grant all on glance.* to 'glance'@'%' identified by 'glancepwd';



修改/etc/glance/glance-registry.conf文件。

sql_connection= mysql://glance:glancepwd@192.168.0.106/glance

#在文件末尾加上如下:

[paste_deploy]

flavor = keystone


修改/etc/glance/glance-api.conf文件。

#在文件末尾加上如下:

[paste_deploy]

flavor = keystone


修改/etc/glance/glance-api-paste.ini和/etc/glance/glance-registry-paste.ini


#在文件末尾加上如下这段, ip是keystone服务器地址, 并且设置正确 tenantName user和password

[filter:authtoken]
paste.filter_factory = keystone.middleware.auth_token:filter_factory
service_protocol = http
service_host=192.168.0.106
service_port = 5000
auth_host=192.168.0.106
auth_port = 35357
auth_protocol = http
auth_uri=
admin_tenant_name=adminTenant
admin_user=admin
admin_password=openstack
admin_token=ADMIN



sudo glance-manage version_control 0//enable version_control

sudo glance-managedb_sync


Mysql会有4个表。

sudo service glance-api restart

sudo service glance-registry restart


2、使用glance

1) 导入环境变量


export  OS_USERNAME=admin

export  OS_TENANT_NAME=adminTenant

export OS_PASSWORD=openstack

export OS_AUTH_URL=v2.0

export OS_REGION_NAME=RegionOne

2) 要使用glance,需要先告诉keystone找到glance服务。注册glance服务

keystone    service-create    --name=Glance     --type=image    --description=”GlanceImage Service”

会得到glance的serviceid是 ,这个id在指定endpoint时需要

指定其endpoint

keystone endpoint-create   --service_id = glance-service-id   --region RegionOne   --publicurl   --adminurl http:// 192.168.0.112:9292/v1   --internalurl http:// 192.168.0.112:9292/v1 

3)上传镜像


    首先先从网上下载一个镜像

wget -c


    然后上传

glance   add    name=cirros-0.3.0-x86_64     disk_format=qcow2       container_format=bare < cirros-0.3.0-x86_64-disk.img

成功后就能通过glance index查看到刚才上传得镜像文件。


$ glance index
ID                                   Name                           Disk Format          Container Format     Size          
------------------------------------ ------------------------------ -------------------- -------------------- 
f4addd24-4e8a-46bb-b15d-fae2591f1a35 cirros-0.3.0-x86_64            qcow2                bare                        9761280

openstack essex版安装(4)——swift

分类: openstack 1218人阅读 评论(0) 收藏 举报

       swift是openstack的存储项目。这里我用了2台机子


Swift

Host:swift1

ip:192.168.0.110

Proxy-server, account-server, container-server, object-server

Host:swift2

ip:192.168.0.111

account-server, container-server, object-server

1、主控点安装(swift1)



sudo apt-get install –y keystone   // 如果要和keystone做集成,swift需要使用到keystone里提供的swift_auth和auth_token的功能,不过只需在有proxy-server的服务器上装就可以了。

sudo apt-get install –y swift swift-proxy memcached swift-account swift-container swift-object

sudo groupadd swift

sudo useradd -g swift swift    //为每台机器都创建swift用户

在/etc/swift下面创建一个swift.conf文件,每个节点都应该一样。内容如下:

[plain] view plaincopy
  1. [swift-hash]  
  2. swift_hash_path_suffix =123456789  

openssl version    //确定有没有openssl,如果出现版本就说明装了

配置memcached。Swift自己是没有cache机制的,所以会用到memcached,一个高性能的分布式内存对象缓存系统。proxy server需要用到memcache来作为token的临时存储, 所以需要安装和配置一下memcached。


sudo  sed -i 's/127.0.0.1/0.0.0.0/g' /etc/memcached.conf

sudo  service memcached restart


在/etc/swift/下创建proxy-server.conf文件配置swift的proxy-server

[plain] view plaincopy
  1. [DEFAULT]  
  2. bind_port = 8080  
  3. swift_dir = /etc/swift  
  4. workers = 1  
  5. user = swift  
  6. log_level = DEBUG  
  7.   
  8. [pipeline:main]  
  9. pipeline = catch_errors healthcheck cache ratelimit  authtoken keystone proxy-server  
  10.   
  11. [app:proxy-server]  
  12. account_autocreate = true  
  13. use = egg:swift#proxy  
  14.   
  15. [filter:healthcheck]  
  16. use = egg:swift#healthcheck  
  17.   
  18. [filter:cache]  
  19. use = egg:swift#memcache  
  20.   
  21. [filter:ratelimit]  
  22. use = egg:swift#ratelimit  
  23.   
  24. [filter:domain_remap]  
  25. use = egg:swift#domain_remap  
  26.   
  27. [filter:catch_errors]  
  28. use = egg:swift#catch_errors  
  29.   
  30. #[filter:proxy-logging]  
  31. #use = egg:swift#proxy_logging  
  32.   
  33. [filter:keystone]  
  34. paste.filter_factory = keystone.middleware.swift_auth:filter_factory  
  35. operator_roles = admin,swiftoperator  
  36.   
  37. [filter:authtoken]  
  38. paste.filter_factory = keystone.middleware.auth_token:filter_factory  
  39. auth_host = 192.168.0.106  
  40. auth_port = 35357  
  41. auth_protocol = http  
  42. auth_uri =   
  43. admin_tenant_name = adminTenant  
  44. admin_user = admin  
  45. admin_password = openstack  
  46. admin_token=ADMIN  
  47. delay_auth_decision = 1  

配置映射信息(Ring)。ring决定数据在集群中的位置。帐号数据库、容器数据库和单个对象的环都有独立的环管理,这段配置一定要在/etc/swift/目录下完成。

创建account、container、object的ring信息


[plain] view plaincopy
  1. cd /etc/swift  
  2. sudo swift-ring-builder account.builder create 18 1 1  
  3. sudo swift-ring-builder container.builder create 18 1 1  
  4. sudo swift-ring-builder object.builder create 18 1 1  

创建好后,会在/etc/swift下出现account.builder、contaier.builder和object.builder三个builder文件,同时还会有个backups目录,该目录下也会有三个相应的builder文件。

为存储节点添加物理映射信息


[plain] view plaincopy
  1. sudo swift-ring-builder account.builder add z1-192.168.0.110:6002/sdb1 100  
  2. sudo swift-ring-builder container.builder add z1-192.168. 0.110:6001/sdb1 100  
  3. sudo swift-ring-builder object.builder add z1-192.168. 0.110:6000/sdb1 100  
  4.   
  5. sudo swift-ring-builder account.builder add z2-192.168. 0.111:6002/sdb1 100  
  6. sudo swift-ring-builder container.builder add z2-192.168. 0.111:6001/sdb1 100  
  7. sudo swift-ring-builder object.builder add z2-192.168. 0.111:6000/sdb1 100  

生成最终的Ring

[plain] view plaincopy
  1. sudo swift-ring-builder account.builder rebalance  
  2. sudo swift-ring-builder container.builder rebalance  
  3. sudo swift-ring-builder object.builder rebalance  



当创建好了Ring文件, 可以通过下面的命令来验证刚才添加的内容是否正确。


[plain] view plaincopy
  1. swift-ring-builder account.builder  
  2. swift-ring-builder container.builder  
  3. swift-ring-builder object.builder  


我们的存储节点在/dev/sdb/上,先对这块盘进行分区并格式化为xfs格式, 然后挂载在/srv/node/sdb1这个目录上。Swift的设计是可以使用最普通的文件系统,只要支持扩展属性就可以。一些文件系统,像ext3默认的xattrs属性是关闭着的,Openstack项目组推荐xfs。


sudo apt-get install xfsprogs  //安装xfs文件系统

sudo fdisk /dev/sdb        //#然后一次选择 n, p, 1, 默认, 默认, w

sudo mkfs.xfs -i size=1024 /dev/sdb1

sudo –s    //切换到root

echo "/dev/sdb1 /srv/node/sdb1 xfsnoatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab

exit

sudo mkdir -p /srv/node/sdb1

sudo mount /srv/node/sdb1

sudo chown -R swift:swift /srv/node

在/etc下创建rsyncd.conf文件 


[plain] view plaincopy
  1. uid = swift  
  2. gid = swift  
  3. log file = /var/log/rsyncd.log  
  4. pid file = /var/run/rsyncd.pid  
  5. address = 192.168.0.110  
  6.   
  7. [account]  
  8. max connections = 2  
  9. path = /srv/node/  
  10. read only = false  
  11. lock file = /var/lock/account.lock  
  12.   
  13. [container]  
  14. max connections = 2  
  15. path = /srv/node/  
  16. read only = false  
  17. lock file = /var/lock/container.lock  
  18.   
  19. [object]  
  20. max connections = 2  
  21. path = /srv/node/  
  22. read only = false  
  23. lock file = /var/lock/object.lock  


sudo sed -i 's/RSYNC_ENABLE=false/RSYNC_ENABLE=true/g'/etc/default/rsync    //设置rsync开机启动

sudo service rsync start     //启动rsync

配置account-server.conf

        sudo  vi /etc/swift/account-server.conf

[plain] view plaincopy
  1. [DEFAULT]  
  2. bind_port = 6002  
  3. #workers = 2  
  4. user = swift  
  5. swift_dir = /etc/swift  
  6. devices = /srv/node  
  7. mount_check = false  
  8. log_facility = LOG_LOCAL2  
  9.   
  10.   
  11. [pipeline:main]  
  12. pipeline = recon account-server  
  13.   
  14. [app:account-server]  
  15. use = egg:swift#account  
  16.   
  17. [filter:recon]  
  18. use = egg:swift#recon  
  19.   
  20. [account-replicator]  
  21. vm_test_mode = yes  
  22.   
  23. [account-auditor]  
  24.   
  25. [account-reaper]  

配置/etc/swift/container-server.conf


[plain] view plaincopy
  1. [DEFAULT]  
  2. bind_port = 6001  
  3. user = swift  
  4. swift_dir = /etc/swift  
  5. devices = /srv/node  
  6. mount_check = false  
  7. log_facility = LOG_LOCAL2  
  8.   
  9. [pipeline:main]  
  10. pipeline = recon container-server  
  11.   
  12. [app:container-server]  
  13. use = egg:swift#container  
  14.   
  15. [filter:recon]  
  16. use = egg:swift#recon  
  17.   
  18. [container-replicator]  
  19. vm_test_mode = yes  
  20.   
  21. [container-updater]  
  22.   
  23. [container-auditor]  
  24.   
  25. [container-sync]  


配置/etc/swift/object-server.conf


[plain] view plaincopy
  1. [DEFAULT]  
  2. bind_port = 6000  
  3. user = swift  
  4. swift_dir = /etc/swift  
  5. devices = /srv/node  
  6. mount_check = false  
  7. log_facility = LOG_LOCAL2  
  8.   
  9. [pipeline:main]  
  10. pipeline = recon object-server  
  11.   
  12. [app:object-server]  
  13. use = egg:swift#object  
  14.   
  15. [filter:recon]  
  16. use = egg:swift#recon  
  17.   
  18. [object-replicator]  
  19. vm_test_mode = yes  
  20.   
  21. [object-updater]  
  22.   
  23. [object-auditor]  

(每个存储节点都是这么配置,只需改动/etc/rsyncd.conf的存储节点ip)


2、第二个存储节点配置(swift2)


存储节点无需安装proxy-server和memcached。

       sudo apt-get install –y openssh-server

       sudo apt-get install –y swift-accountswift-container swift-object

       sudo groupadd swift

sudo useradd -g swift swift    //为每台机器都创建swift用户

在/etc/swift下面创建一个swift.conf文件,每个节点都应该一样。内容如下:


[plain] view plaincopy
  1. [swift-hash]  
  2. swift_hash_path_suffix =123456789  


将存储磁盘格式成xfs格式

sudo apt-get install xfsprogs  //安装xfs文件系统

sudo fdisk /dev/sdb        //#然后一次选择 n, p, 1, 默认, 默认, w

sudo mkfs.xfs -i size=1024 /dev/sdb1

sudo –s    //切换到root

echo "/dev/sdb1 /srv/node/sdb1 xfsnoatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab

exit

sudo mkdir -p /srv/node/sdb1

sudo mount /srv/node/sdb1

sudo chown -R swift:swift /srv/node

然后将第一个存储节点的/etc/swift目录下的swift.conf、account-server.conf、container-server.conf、object-server.conf、account.ring.gz、container.ring.gz、object.ring.gz这些文件都copy到该节点的/etc/swift目录下, 如果文件夹不存在, 可以创建一下 mkdir /etc/swift。

创建/etc/rsyncd.conf文件。将adress的值改成该存储节点的ip。


[plain] view plaincopy
  1. uid = swift  
  2. gid = swift  
  3. log file = /var/log/rsyncd.log  
  4. pid file = /var/run/rsyncd.pid  
  5. address = 192.168.0.111  
  6.   
  7. [account]  
  8. max connections = 2  
  9. path = /srv/node/  
  10. read only = false  
  11. lock file = /var/lock/account.lock  
  12.   
  13. [container]  
  14. max connections = 2  
  15. path = /srv/node/  
  16. read only = false  
  17. lock file = /var/lock/container.lock  
  18.   
  19. [object]  
  20. max connections = 2  
  21. path = /srv/node/  
  22. read only = false  
  23. lock file = /var/lock/object.lock  

sudo sed -i's/RSYNC_ENABLE=false/RSYNC_ENABLE=true/g' /etc/default/rsync       //设置rsync开机启动



sudo service rsync start        //启动rsync

启动swift2节点的服务


[plain] view plaincopy
  1. sudo swift-init object-server start  
  2. sudo swift-init object-replicator start  
  3. sudo swift-init object-updater start  
  4. sudo swift-init object-auditor start  
  5. sudo swift-init container-server start  
  6. sudo swift-init container-replicator start  
  7. sudo swift-init container-updater start  
  8. sudo swift-init container-auditor start  
  9. sudo swift-init account-server start  
  10. sudo swift-init account-replicator start  
  11. sudo swift-init account-auditor start  


启动swift1节点服务:

sudo swift-init all start

启动后,用ps命令可以看到所有服务的进程。

3、使用swift


1)注册swift服务到keystone上

?  创建一个object-store服务

keystone service-create --name=Swift  --type=object-store --description="Swift Object Store Service"

得到swift服务的id。

?  创建服务的endpoint

(IP地址是proxy-server所在服务器地址)

keystone endpoint-create --service_id =   --region RegionOne --publicurl                         --adminurl --internalurl

2)使用swift

?  swift -V 2 -A -UadminTenant:admin -K openstack stat        //在swift主控点使用该命令,看一下文件的统计结果


openstack essex版安装(5) dashboard的汉化

分类: openstack 970人阅读 评论(0) 收藏 举报

openstack的dashboard在语言设置栏里有多种语言可选,虽然有简体中文选项,但是它的汉化基本没有完成。openstack的dashboard采用的是django架构。

django 国际化的本质就是开发者对需要翻译的字符串进行标记,并对字符串进行相应的翻译。具体操作是:

1、创建locale目录,

2、然后django-admin.py makemessages -l zh_CN,生成locale/zh_CN/LC_MESSAGES/django.po 文件。在这个po文件里对英文进行翻译。

不过对于openstack的dashboard,它已经有po文件了,我们只需直接编辑po文件就行了。

我是用apt-get方式安装的,直接编辑/usr/share/pyshared/horizon/locale/zh_CN/LC_MESSAGES/django.po文件。

[python] view plaincopy
  1. #: settings.py:136  
  2. msgid "English"  
  3. msgstr "英语"  
  4.   
  5. #: settings.py:137  
  6. msgid "Italiano"  
  7. msgstr ""  


po文件内容如上,msgid是源文件中出现的翻译字符串。msgstr 是相应语言的翻译结果。注意语句前后都有引号。 刚创建时 msgstr 是空字符串,需要翻译人员翻译。

翻译好后,编译po文件,

[plain] view plaincopy
  1. msgfmt --statistics --verbose -o django.mo django.po  

在po文件的目录下会生成一个同名的mo文件。然后在 /usr/lib/python2.7/dist-packages/horizon/locale/zh_CN/LC_MESSAGES下创建mo文件的软链接:


[plain] view plaincopy
  1. cd /usr/lib/python2.7/dist-packages/horizon/locale/zh_CN/LC_MESSAGES   
  2.   
  3. ln -s /usr/share/pyshared/horizon/locale/zh_CN/LC_MESSAGES/django.mo django.mo  

重启apche2服务。就可以了。


openstack essex版安装(6)——dashboard安装

分类: openstack 1108人阅读 评论(0) 收藏 举报

horizon是openstack项目组做的dashboard管理界面,用户通过这个界面可以很方便的对openstack功能进行操作,比如说建虚拟机、上传文件等等。horizon采用的是django的web架构。

1、安装

   1)安装web服务


[plain] view plaincopy
  1. sudo apt-get install apache2  

   2)安装horizon



[plain] view plaincopy
  1. sudo apt-get install memcached openstack-dashboard  

    3)在/etc/openstack-dashboard/local_settings.py里配置horizon


     这里主要配置的,一个是将SWIFT_ENALBED置为true,一个是配置有关keystone的信息。


[python] view plaincopy
  1. import os  
  2.   
  3. from django.utils.translation import ugettext_lazy as _  
  4.   
  5. #DEBUG = False  
  6. DEBUG=True  
  7. TEMPLATE_DEBUG = DEBUG  
  8. PROD = False  
  9. USE_SSL = False  
  10.   
  11. # Ubuntu-specific: Enables an extra panel in the 'Settings' section  
  12. # that easily generates a Juju environments.yaml for download,  
  13. # preconfigured with endpoints and credentails required for bootstrap  
  14. # and service deployment.  
  15. #ENABLE_JUJU_PANEL = True  
  16. ENABLE_JUJU_PANEL = False  
  17.   
  18. # Note: You should change this value  
  19. SECRET_KEY = 'elj1IWiLoWHgcyYxFVLj7cM5rGOOxWl0'  
  20.   
  21. # Specify a regular expression to validate user passwords.  
  22. # HORIZON_CONFIG = {  
  23. #     "password_validator": {  
  24. #         "regex": '.*',  
  25. #         "help_text": _("Your password does not meet the requirements.")  
  26. #     }  
  27. # }  
  28.   
  29. LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))  
  30.   
  31. CACHE_BACKEND = 'memcached://127.0.0.1:11211/'  
  32.   
  33. # Send email to the console by default  
  34. EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'  
  35. # Or send them to /dev/null  
  36. #EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'  
  37.   
  38. # Configure these for your outgoing email host  
  39. # EMAIL_HOST = 'smtp.my-company.com'  
  40. # EMAIL_PORT = 25  
  41. # EMAIL_HOST_USER = 'djangomail'  
  42. # EMAIL_HOST_PASSWORD = 'top-secret!'  
  43.   
  44. # For multiple regions uncomment this configuration, and add (endpoint, title).  
  45. # AVAILABLE_REGIONS = [  
  46. #     ('', 'cluster1'),  
  47. #     ('', 'cluster2'),  
  48. # ]  
  49.   
  50. OPENSTACK_HOST = "192.168.0.106"  
  51. OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0" % OPENSTACK_HOST  
  52. OPENSTACK_KEYSTONE_DEFAULT_ROLE = "admin"  
  53. OPENSTACK_ADMIN_TOKEN="ADMIN"  
  54. OPENSTACK_KEYSTONE_ADMIN_URL=""  
  55.   
  56.   
  57. DATABASES={  
  58.     'default':{  
  59.         'ENGINE':'django.db.backends.mysql',  
  60.         'NAME':'dash',  
  61.         'USER':'dash',  
  62.         'PASSWORD':'dashpwd',  
  63.         'HOST':'192.168.0.106',  
  64.         'default-character-set':'utf8'  
  65.         },  
  66.     }  
  67.   
  68. SWIFT_ENALBED=True  
  69.   
  70. SESSION_ENGINE='django.contrib.sessions.backends.cached_db'  
  71. # The OPENSTACK_KEYSTONE_BACKEND settings can be used to identify the  
  72. # capabilities of the auth backend for Keystone.  
  73. # If Keystone has been configured to use LDAP as the auth backend then set  
  74. # can_edit_user to False and name to 'ldap'.  
  75. #  
  76. # TODO(tres): Remove these once Keystone has an API to identify auth backend.  
  77. OPENSTACK_KEYSTONE_BACKEND = {  
  78.     'name''native',  
  79.     'can_edit_user'True  
  80. }  
  81.   
  82. # OPENSTACK_ENDPOINT_TYPE specifies the endpoint type to use for the endpoints  
  83. # in the Keystone service catalog. Use this setting when Horizon is running  
  84. # external to the OpenStack environment. The default is 'internalURL'.  
  85. #OPENSTACK_ENDPOINT_TYPE = "publicURL"  
  86.   
  87. # The number of Swift containers and objects to display on a single page before  
  88. # providing a paging element (a "more" link) to paginate results.  
  89. API_RESULT_LIMIT = 1000  
  90.   
  91. # If you have external monitoring links, eg:  
  92. # EXTERNAL_MONITORING = [  
  93. #     ['Nagios',''],  
  94. #     ['Ganglia',''],  
  95. # ]  
  96.   
  97. LOGGING = {  
  98.         'version'1,  
  99.         # When set to True this will disable all logging except  
  100.         # for loggers specified in this configuration dictionary. Note that  
  101.         # if nothing is specified here and disable_existing_loggers is True,  
  102.         # django.db.backends will still log unless it is disabled explicitly.  
  103.         'disable_existing_loggers'False,  
  104.         'handlers': {  
  105.             'null': {  
  106.                 'level''DEBUG',  
  107.                 'class''django.utils.log.NullHandler',  
  108.                 },  
  109.             'console': {  
  110.                 # Set the level to "DEBUG" for verbose output logging.  
  111.                 'level''INFO',  
  112.                 'class''logging.StreamHandler',  
  113.                 },  
  114.             },  
  115.         'loggers': {  
  116.             # Logging from django.db.backends is VERY verbose, send to null  
  117.             # by default.  
  118.             'django.db.backends': {  
  119.                 'handlers': ['null'],  
  120.                 'propagate'False,  
  121.                 },  
  122.             'horizon': {  
  123.                 'handlers': ['console'],  
  124.                 'propagate'False,  
  125.             },  
  126.             'novaclient': {  
  127.                 'handlers': ['console'],  
  128.                 'propagate'False,  
  129.             },  
  130.             'keystoneclient': {  
  131.                 'handlers': ['console'],  
  132.                 'propagate'False,  
  133.             },  
  134.             'nose.plugins.manager': {  
  135.                 'handlers': ['console'],  
  136.                 'propagate'False,  
  137.             }  
  138.         }  
  139. }  

      然后重启apache和nova-api服务。


    

3、使用

1)注册keystone服务

      创建keystone服务    

[plain] view plaincopy
  1. keystone service-create --name=Keystone --type=identity --description="Keystone Identity Serve"  
      创建endpoint



[plain] view plaincopy
  1. keystone endpoint-create --service_id =   --region RegionOne --publicurl v2.0 --adminurl  --internalurl v2.0  


2)访问

在浏览器输入dashboard的ip访问。

     根据之前的设置,用户名就是user的名字admin,密码是openstack。登录后界面:




阅读(1621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~