前期对于网络的配置参照 手动部署 网络配置
http://blog.csdn.net/u014707812/article/details/52087654
1.设置kilo 源 ,其他版本自行更改源
#yum install -y
https://repos.fedorapeople.org/repos/openstack/openstack-kilo/rdo-release-kilo-2.noarch.rpm
2# yum update -y
更新
3.#yum install -y openstack-packstack
安装openstack包
单节点安装:#packstack --allinone
多节点安装:
1.#packstack --gen-answer-file answer.conf
生成answer.conf文件
2.修改文件内容answer.conf文件内容,个人可酌情更改
我改了:
CONFIG_NTP_SERVERS=cn.ntp.org.cn,210.72.145.39 //设置ntp服务器
CONFIG_COMPUTE_HOSTS=10.139.8.8,10.139.8.77//设置控制节点,计算节点网络节点的ip//
其余选择需要安装的服务;
安装neutron 所有特性
3.#packstack --answer-file=answer.conf
//安装
安装既可。遇到出错很可能是网络问题,重新运行
packstack --answer-file=answer.conf 即可。
4.安装完成后,登陆http://10.139.8.75/dashboard/
10.139.8.75 控制节点
账号 admin
密码在answer.conf 文件CONFIG_KEYSTONE_ADMIN_Pw后面的,当然也可以在安装之前自己配置。
遇到的问题:
1.云主机无法创建
horizon 报错如图:
nova-api.log 报错:
2016-09-01 11:26:00.542 13293 ERROR nova.api.openstack [req-3f74b1ee-0013-447d-82ec-4a7bb9eea386 baf423fe1a314d6ba40c3b4056828b06 318fd2a46129401889551aff87245ec5 - - -] Caught error: id
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack Traceback (most recent call last):
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/api/openstack/__init__.py", line 125, in __call__
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack return req.get_response(self.application)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1317, in send
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack application, catch_exc_info=False)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/request.py", line 1281, in call_application
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack app_iter = application(self.environ, start_response)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack return resp(environ, start_response)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 634, in __call__
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack return self._call_app(env, start_response)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 554, in _call_app
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack return self._app(env, _fake_start_response)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack return resp(environ, start_response)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack return resp(environ, start_response)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack return resp(environ, start_response)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack return self.func(req, *args, **kwargs)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 756, in __call__
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack content_type, body, accept)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 821, in _process_stack
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack action_result = self.dispatch(meth, request, action_args)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 911, in dispatch
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack return method(req=request, **action_args)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/api/openstack/compute/images.py", line 83, in show
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack image = self._image_api.get(context, id)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/image/api.py", line 93, in get
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack show_deleted=show_deleted)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 309, in show
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack include_locations=include_locations)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 483, in _translate_from_glance
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack include_locations=include_locations)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 545, in _extract_attributes
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack queued = getattr(image, 'status') == 'queued'
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/glanceclient/openstack/common/apiclient/base.py", line 491, in __getattr__
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack self.get()
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/glanceclient/openstack/common/apiclient/base.py", line 509, in get
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack new = self.manager.get(self.id)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack File "/usr/lib/python2.7/site-packages/glanceclient/openstack/common/apiclient/base.py", line 494, in __getattr__
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack raise AttributeError(k)
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack AttributeError: id
2016-09-01 11:26:00.542 13293 TRACE nova.api.openstack
这是自带bug 可能是版本不兼容问题;
社区里有解决方法:
https://review.openstack.org/#/c/244899/3/glanceclient/v1/images.py
2.云主机可以成功创建
进入控制台的时候报错:failed to connect to server (code 1006)
其他遇到这类问题的解决方法:
http://blog.csdn.net/Moolight_shadow/article/details/45014707
http://blog.csdn.net/yzg2010a/article/details/38375863
我遇到的问题:
horizon中显示云主机已正常显示,log正确
nova-novncproxy.log报错:
2016-09-01 13:43:57.249 18207 INFO nova.console.websocketproxy [req-2765a3dd-5a2d-4869-91b7-679977fa90c3 - - - - -] handler exception: [Errno -2] Name or service not known
2016-09-01 13:43:57.250 18207 DEBUG nova.console.websocketproxy [req-2765a3dd-5a2d-4869-91b7-679977fa90c3 - - - - -] exception vmsg /usr/lib/python2.7/site-packages/websockify/websocket.py:87
5
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy Traceback (most recent call last):
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib/python2.7/site-packages/websockify/websocket.py", line 930, in top_new_client
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy client = self.do_handshake(startsock, address)
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib/python2.7/site-packages/websockify/websocket.py", line 860, in do_handshake
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy self.RequestHandlerClass(retsock, address, self)
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib/python2.7/site-packages/nova/console/websocketproxy.py", line 159, in __init__
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy websockify.ProxyRequestHandler.__init__(self, *args, **kwargs)
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib/python2.7/site-packages/websockify/websocket.py", line 114, in __init__
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy SimpleHTTPRequestHandler.__init__(self, req, addr, server)
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib64/python2.7/SocketServer.py", line 649, in __init__
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy self.handle()
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib/python2.7/site-packages/websockify/websocket.py", line 581, in handle
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy SimpleHTTPRequestHandler.handle(self)
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib64/python2.7/BaseHTTPServer.py", line 340, in handle
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy self.handle_one_request()
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib64/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy method()
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib/python2.7/site-packages/websockify/websocket.py", line 543, in do_GET
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy if not self.handle_websocket():
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib/python2.7/site-packages/websockify/websocket.py", line 531, in handle_websocket
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy self.new_websocket_client()
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib/python2.7/site-packages/nova/console/websocketproxy.py", line 130, in new_websocket_client
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy tsock = self.socket(host, port, connect=True)
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib/python2.7/site-packages/nova/console/websocketproxy.py", line 162, in socket
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy return websockify.WebSocketServer.socket(*args, **kwargs)
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy File "/usr/lib/python2.7/site-packages/websockify/websocket.py", line 715, in socket
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy socket.IPPROTO_TCP, flags)
2016-09-01 13:43:57.250 18207 TRACE nova.console.websocketproxy gaierror: [Errno -2] Name or service not known
问题分析:
log显示
“2016-09-01 13:43:51.098 18207 INFO nova.console.websocketproxy [req-2765a3dd-5a2d-4869-91b7-679977fa90c3 - - - - -] 7: connecting to: compute-cty.novalocal:5900
connecting to: compute-cty.novalocal:5900 连接 compute-cty.novalocal时出错,
在控制节点 执行 ping compute-cty.novalocal
无法ping通,所以更改hosts文件
在ip后面添上 compute-cty.novalocal域名。
这是在horizon上可以打开控制台。
3.在answer.conf 中已经选择安装VPN,但horizon中未显示:
初步推测只是在horizon中未打开:
所以在horizon的配置文件/etc/openstack-dashboard/local_settings 中添加:
OPENSTACK_NEUTRON_NETWORK = {
'enable_lb': True,
'enable_firewall': True,
'enable_vpn': True,
}
并且重启HTTP和neutron server
service httpd restart
service neutron-server restart
再次打开horizon,面板中显示VPN
备注:如果是未装VPN参考:
http://blog.csdn.net/henulwj/article/details/47207283