OpenStack Essex安装手册.docx
《OpenStack Essex安装手册.docx》由会员分享,可在线阅读,更多相关《OpenStack Essex安装手册.docx(51页珍藏版)》请在冰豆网上搜索。
OpenStackEssex安装手册
OpenStackEssex版安装手册
OpenStack是一个云平台管理的项目,它不是一个软件。
这个项目由几个主要的组件组合起来完成一些具体的工作。
就目前而言,OpenStack在国外慢慢的流行开来,不少企业和个人也在对它进行二次开发。
从我个人理解,OpenStack作为一种免费的开源软件,可以用在中小企业内部,可以给公司内部的开发测试部门使用,也可以跑一些应用服务。
另外一种就是提供对外服务,好比作云服务的企业会考虑对OpenStack进行二次开发和包装,集成或者新增一些特定的功能或者管理界面。
我觉得OpenStack不光光能在1分钟给你想要的image操作系统,也可以做到5分钟能帮你生成一台app节点(应用服务器)加入到业务中去。
后者才是我们现在更需要去做的,从irc聊天室、邮件列表、以及一些wiki的内容来看,老外已经在这方面走在了前面。
由于OpenStack组件非常多,安装问题给想要了解它的新手带来了一些问题,由于官方文档更新比较慢,我是在开始的安装过程中浪费了大量的时间,这里根据一些文档和资料整理出这一篇Essex版的安装文档来,希望对想要了解OpenStack的人一些帮助
1安装前的准备
o1.1安装依赖软件包
2安装和配置认证服务(Keystone)
o2.1安装和配置keystone
o2.2验证认证服务器的安装
o2.3参考资料
3安装和配置镜像服务(Glance)
o3.1安装镜像服务(Glance)
o3.2配置镜像服务(Glance)
o3.3启动镜像服务
o3.4验证镜像服务的安装
o3.5上传镜像到Glance
o3.6参考资料
4安装和配置计算服务(Nova)
o4.1安装计算服务(Nova)
o4.2配置计算服务(Nova)
o4.3启动服务
o4.4验证Nova安装配置
o4.5参考资料
5安装配置Horizon
o5.1安装Horizon
o5.2配置Horizon
o5.3验证Horizon安装
6Tips
7写在最后
1安装前的准备
1.1安装依赖软件包
∙安装时间服务器
sudoapt-getupdate
sudoapt-getinstall-yntp
sudosed-i's/server\nserver127.127.1.0\nfudge127.127.1.0stratum10/g'/etc/ntp.conf
sudoservicentprestart
∙用apt-get安装依赖软件
#general
sudoapt-get-yinstallpep8pylintpython-pipscreenunzipwgetpsmiscgit-corevim-noxlocatepython-virtualenvpython-unittest2iputils-pingwgetcurltcpdumpeuca2ools
#glance
sudoapt-get-yinstallpython-eventletpython-routespython-greenletpythonpython-sqlalchemypython-wsgirefpython-pastedeploypython-xattrpython-iso8601
#horizon
sudoapt-get-yinstallapache2libapache2-mod-wsgipython-dateutilpython-pastepython-pastedeploypython-anyjsonpython-routespython-xattrpython-sqlalchemypython-webobpython-kombupylintpep8python-eventletpython-nosepython-sphinxpython-moxpython-kombupython-coveragepython-cherrypy3python-djangopython-django-mailerpython-django-nosepython-django-registrationpython-cloudfilespython-migrate
#keystone
sudoapt-get-yinstallpython-setuptoolspython-devpython-lxmlpython-pastescriptpython-pastedeploypython-pastesqlite3python-pysqlite2python-sqlalchemypython-webobpython-greenletpython-routeslibldap2-devlibsasl2-devpython-bcrypt
#nova-api
sudoapt-get-yinstallpython-dateutil
#nova-compute
sudoapt-get-yinstalllvm2open-iscsiopen-iscsi-utils
#nova-novncproxy
sudoapt-get-yinstallpython-numpy
#nova
#hereweuseaptitudesinceapt-getcannotsolvethedependence
sudoaptitude-yinstalldnsmasq-basednsmasq-utilskpartxpartedarpingiputils-arpingmysql-serverpython-mysqldbpython-xattrpython-lxmlkvmgawkiptablesebtablessqlite3sudokvmlibvirt-binvlancurlrabbitmq-serversocatpython-moxpython-pastepython-migratepython-gflagspython-greenletpython-libvirtpython-libxml2python-routespython-netaddrpython-pastedeploypython-eventletpython-cheetahpython-carrotpython-tempitapython-sqlalchemypython-sudspython-lockfilepython-m2cryptopython-botopython-kombu\python-feedparserpython-iso8601
#nova-volume
sudoapt-get-yinstalltgtlvm2
∙用pip安装依赖软件
#horizon
sudopipinstalldjango-nose-seleniumpycrypto==2.3
#keystone
sudopipinstallPassLib
#tempest
sudopipinstallpika
2安装和配置认证服务(Keystone)
2.1安装和配置keystone
∙安装keystone
mkdir/opt/stack
#keystone
cd/opt/stack
gitclone
cdkeystone
gitcheckoutmaster
sudopythonsetup.pydevelop
#keystoneclientlibrarytonovathathorizonuses
cd/opt/stack
gitclone
cdpython-keystoneclient
gitcheckoutmaster
sudopythonsetup.pydevelop
∙安装curl,一个模拟HTTP请求的命令行工具
sudoapt-getinstallcurl
∙配置数据存储后端
sudoapt-getinstallpython-mysqldbmysql-server
sudosed-i's/127.0.0.1/0.0.0.0/g'/etc/mysql/f
sudoservicemysqlrestart
mysql-uroot-p
mysql>CREATEDATABASEkeystone;
mysql>GRANTALLONkeystone.*TO'keystone'@'localhost'IDENTIFIEDBY'mypasswd';
mysql>quit
∙编辑keystone.conf
sudocp-r/opt/stack/keystone/etc/etc/keystone
sudovi/etc/keystone/keystone.conf
[DEFAULT]
bind_host=0.0.0.0
public_port=5000
admin_port=35357
admin_token=openstack
compute_port=3000
verbose=True
debug=True
#commentedoutsodevstacklogstostdout
log_file=/var/log/keystone/keystone.log
#=================SyslogOptions============================
#Sendlogstosyslog(/dev/log)insteadoftofilespecified
#by`log-file`
use_syslog=False
#Facilitytouse.IfunsetdefaultstoLOG_USER.
#syslog_log_facility=LOG_LOCAL0
[sql]
connection=mysql:
//keystone:
mypasswd@192.168.122.6/keystone
idle_timeout=30
min_pool_size=5
max_pool_size=10
pool_timeout=200
[identity]
driver=keystone.identity.backends.sql.Identity
[catalog]
driver=keystone.catalog.backends.templated.TemplatedCatalog
template_file=/etc/keystone/default_catalog.templates
[token]
driver=keystone.token.backends.kvs.Token
[policy]
driver=keystone.policy.backends.rules.Policy
[ec2]
driver=keystone.contrib.ec2.backends.sql.Ec2
[filter:
debug]
paste.filter_factory=mon.wsgi:
Debug.factory
[filter:
token_auth]
paste.filter_factory=keystone.middleware:
TokenAuthMiddleware.factory
[filter:
admin_token_auth]
paste.filter_factory=keystone.middleware:
AdminTokenAuthMiddleware.factory
[filter:
xml_body]
paste.filter_factory=keystone.middleware:
XmlBodyMiddleware.factory
[filter:
json_body]
paste.filter_factory=keystone.middleware:
JsonBodyMiddleware.factory
[filter:
crud_extension]
paste.filter_factory=keystone.contrib.admin_crud:
CrudExtension.factory
[filter:
ec2_extension]
paste.filter_factory=keystone.contrib.ec2:
Ec2Extension.factory
[filter:
s3_extension]
paste.filter_factory=keystone.contrib.s3:
S3Extension.factory
[app:
public_service]
paste.app_factory=keystone.service:
public_app_factory
[app:
admin_service]
paste.app_factory=keystone.service:
admin_app_factory
[pipeline:
public_api]
pipeline=token_authadmin_token_authxml_bodyjson_bodydebugec2_extensions3_extensionpublic_service
[pipeline:
admin_api]
pipeline=token_authadmin_token_authxml_bodyjson_bodydebugec2_extensioncrud_extensionadmin_service
[app:
public_version_service]
paste.app_factory=keystone.service:
public_version_app_factory
[app:
admin_version_service]
paste.app_factory=keystone.service:
admin_version_app_factory
[pipeline:
public_version_api]
pipeline=xml_bodypublic_version_service
[pipeline:
admin_version_api]
pipeline=xml_bodyadmin_version_service
[composite:
main]
use=egg:
Paste#urlmap
/v2.0=public_api
/=public_version_api
[composite:
admin]
use=egg:
Paste#urlmap
/v2.0=admin_api
/=admin_version_api
∙建立log目录
sudomkdir/var/log/keystone
∙定义服务点新版把服务点(endpoint)的定义放在了一个文件中,只要写到这个文件也就可以了
sudovi/etc/keystone/default_catalog.templates
#configforTemplatedCatalog,usingcamelCasebecauseIdon'twanttodo
#translationsforlegacycompat
catalog.RegionOne.identity.publicURL=http:
//192.168.122.6:
$(public_port)s/v2.0
catalog.RegionOne.identity.adminURL=http:
//192.168.122.6:
$(admin_port)s/v2.0
catalog.RegionOne.identity.internalURL=http:
//192.168.122.6:
$(public_port)s/v2.0
catalog.RegionOne.identity.name='IdentityService'
catalog.RegionOpute.publicURL=http:
//192.168.122.6:
8774/v2/$(tenant_id)s
catalog.RegionOpute.adminURL=http:
//192.168.122.6:
8774/v2/$(tenant_id)s
catalog.RegionOpute.internalURL=http:
//192.168.122.6:
8774/v2/$(tenant_id)s
catalog.RegionOpute.name='ComputeService'
catalog.RegionOne.volume.publicURL=http:
//192.168.122.6:
8776/v1/$(tenant_id)s
catalog.RegionOne.volume.adminURL=http:
//192.168.122.6:
8776/v1/$(tenant_id)s
catalog.RegionOne.volume.internalURL=http:
//192.168.122.6:
8776/v1/$(tenant_id)s
catalog.RegionOne.volume.name='VolumeService'
catalog.RegionOne.ec2.publicURL=http:
//192.168.122.6:
8773/services/Cloud
catalog.RegionOne.ec2.adminURL=http:
//192.168.122.6:
8773/services/Admin
catalog.RegionOne.ec2.internalURL=http:
//192.168.122.6:
8773/services/Cloud
catalog.RegionOne.ec2.name='EC2Service'
catalog.RegionOne.image.publicURL=http:
//192.168.122.6:
9292/v1
catalog.RegionOne.image.adminURL=http:
//192.168.122.6:
9292/v1
catalog.RegionOne.image.internalURL=http:
//192.168.122.6:
9292/v1
catalog.RegionOne.image.name='ImageService'
∙启动认证服务
sudovi/etc/init/keystone.conf
description"KeystoneService"
startonrunlevel[2345]
stoponrunlevel[016]
respawn
execkeystone-all-config-file/etc/keystone/keystone.conf-d--debug
sudoln-sv/lib/init/upstart-job/etc/init.d/keystone
sudostartkeystone
∙建立表结构
sudokeystone-managedb_sync
∙定义角色,用户和服务
下面的脚本可以帮助你定义角色,用户和服务
运行脚本之前可以先通过下面命令确保keystone服务已经正常工作
然后修改脚本中相应的变量
#SERVICE_TOKENisdefinedin/etc/keystone/keystone.conf
exportSERVICE_TOKEN=openstack
exportSERVICE_ENDPOINT=http:
//192.168.122.6:
35357/v2.0
keystoneuser-list
∙你应该看到
+----------------------------------+---------+--------------------+--------+
|id|enabled|email|name|
+----------------------------------+---------+--------------------+--------+
+----------------------------------+---------+--------------------+--------+
catkeystone_data.sh
#!
/bin/bash
#
#InitialdataforKeystoneusingpython-keystoneclient
#
#AsetofEC2-compatiblecredentialsiscreatedforbothadminanddemo
#usersandplacedin$DEVSTACK_DIR/ec2rc.
#
#TenantUserRoles
#-------------------------------------------------------
#adminadminadmin
#serviceglanceadmin
#servicenovaadmin
#servicequantumadmin#ifenabled
#serviceswiftadmin#ifenabled
#demoadminadmin
#demodemoMember,sysadmin,netadmin
#invisible_to_admindemoMember
#
#Variablessetbeforecallingthisscript:
#SERVICE_TOKEN-akaadmin_tokeninkeystone.conf
#SERVICE_ENDPOINT-localKeystoneadminendpoint
#SERVICE_TENANT_NAME-na