环境介绍
三台controller,分别为node1,node2,node3。三台node,分别安装dashboard,keystone,Nova,neutron,cinder,ceph,glance等基础组件。
haproxy+ keepalived
vip: 172.16.100.50
name | ip |
---|---|
node1 | 172.16.100.10 |
node2 | 172.16.100.11 |
node3 | 172.16.100.12 |
api-paste.ini
[root@node1 trove]# cat api-paste.ini
[composite:trove]
use = call:trove.common.wsgi:versioned_urlmap
/: versions
/v1.0: troveapi
[app:versions]
paste.app_factory = trove.versions:app_factory
[pipeline:troveapi]
pipeline = cors http_proxy_to_wsgi faultwrapper osprofiler authtoken authorization contextwrapper ratelimit extensions troveapp
#pipeline = debug extensions troveapp
[filter:extensions]
paste.filter_factory = trove.common.extensions:factory
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
#auth_host = 172.16.100.50
#auth_port = 5000
#auth_protocol = http
auth_url = http://172.16.100.50:5000/v3
admin_user = trove
admin_password = 123456
admin_tenant_name = service
[filter:authorization]
paste.filter_factory = trove.common.auth:AuthorizationMiddleware.factory
[filter:cors]
paste.filter_factory = oslo_middleware.cors:filter_factory
oslo_config_project = trove
[filter:contextwrapper]
paste.filter_factory = trove.common.wsgi:ContextMiddleware.factory
[filter:faultwrapper]
paste.filter_factory = trove.common.wsgi:FaultWrapper.factory
[filter:ratelimit]
paste.filter_factory = trove.common.limits:RateLimitingMiddleware.factory
[filter:osprofiler]
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory
[app:troveapp]
paste.app_factory = trove.common.api:app_factory
#Add this filter to log request and response for debugging
[filter:debug]
paste.filter_factory = trove.common.wsgi:Debug
[filter:http_proxy_to_wsgi]
use = egg:oslo.middleware#http_proxy_to_wsgi
trove-conductor.conf
[root@node1 trove]# egrep -v '^#|^$' trove-conductor.conf
[DEFAULT]
debug = true
trove_auth_url = http://172.16.100.50:5000/v3
conductor_manager = trove.conductor.manager.Manager
auth_strategy = keystone
control_exchange = trove
transport_url = rabbit://openstack:[email protected]:5672,openstack:[email protected]:5672,openstack:[email protected]:5672
os_region_name = RegionOne
log_dir = /var/log/trove
log_file = trove-conductor.log
[profiler]
[database]
connection = mysql+pymysql://trove:[email protected]/trove
[oslo_messaging_notifications]
transport_url = rabbit://openstack:[email protected]:5672,openstack:[email protected]:5672,openstack:[email protected]:5672
[oslo_messaging_rabbit]
[keystone_authtoken]
www_authenticate_uri = http://172.16.100.50:5000
auth_url = http://172.16.100.50:5000
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = trove
password = 123456
trove.conf
[DEFAULT]
debug = true
bind_host = 172.16.100.10
bind_port = 8779
trove_api_workers=5
transport_url= rabbit://openstack:[email protected]:5672,openstack:[email protected]:5672,openstack:[email protected]:5672
network_label_regex = .*
network_driver = trove.network.nova.NovaNetwork
taskmanager_queue = taskmanager
admin_roles = admin
agent_heartbeat_time = 10
agent_call_low_timeout = 5
agent_call_high_timeout = 150
reboot_time_out = 60
api_paste_config = /etc/trove/api-paste.ini
log_file = /var/log/trove/trove.log
log_dir = /var/log/trove
trove_auth_url = http://172.16.100.50:5000/v3
nova_compute_url = http://172.16.100.50:8774/v2
cinder_url = http://172.16.100.50:8776/v2
transport_url = rabbit://openstack:[email protected]:5672,openstack:[email protected]:5672,openstack:[email protected]:5672
auth_strategy = keystone
add_addresses = True
username=trove
password=123456
[database]
connection = mysql+pymysql://trove:[email protected]/trove
idle_timeout = 3600
[profiler]
[ssl]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
root_on_create = False
tcp_ports = 3306
volume_support = True
ignore_users = os_admin, root
ignore_dbs = mysql, information_schema, performance_schema
[cors]
[cors.subdomain]
[oslo_middleware]
[keystone_authtoken]
www_authenticate_uri = http://172.16.100.50:5000
auth_url = http://172.16.100.50:5000
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = trove
password = 123456
[oslo_messaging_notifications]
transport_url = rabbit://openstack:[email protected]:5672,openstack:[email protected]:5672,openstack:[email protected]:5672
driver = messagingv2
topics = notifications
trove-guestagent.conf
[DEFAULT]
transport_url = rabbit://openstack:[email protected]:5672,openstack:[email protected]:5672,openstack:[email protected]:5672
nova_proxy_admin_user = admin
nova_proxy_admin_pass = 123456
nova_proxy_admin_tenant_name = service
trove_auth_url = http://172.16.100.50:5000/v3
username = trove
password = 123456
trove-taskmanager.conf
[DEFAULT]
debug = true
log_dir = /var/log/trove
log_file = trove-taskmanager.log
taskmanager_manager = trove.taskmanager.manager.Manager
transport_url = rabbit://openstack:[email protected]:5672,openstack:[email protected]:5672,openstack:[email protected]:5672
trove_auth_url = http://172.16.100.50:5000/v3
os_region_name = RegionOne
network_driver = trove.network.neutron.NeutronDriver
network_label_regex = .*
auth_strategy = keystone
default_neutron_networks = 37f35f96-f5af-49d7-9181-1b8fb9c57d9c
[database]
connection = mysql+pymysql://trove:[email protected]/trove
idle_timeout = 3600
[profiler]
[oslo_messaging_notifications]
transport_url = rabbit://openstack:[email protected]:5672,openstack:[email protected]:5672,openstack:[email protected]:5672
driver = messagingv2
topics = notifications
[oslo_messaging_rabbit]
[mysql]
icmp = True
tcp_ports = 3306
volume_support = True
[keystone_authtoken]
www_authenticate_uri = http://172.16.100.50:5000
auth_url = http://172.16.100.50:5000
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = trove
password = 123456
创建实例报错如下:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/trove/taskmanager/models.py", line 439, in wait_for_instance time_out=timeout)
File "/usr/lib/python2.7/site-packages/trove/common/utils.py", line 214, in poll_until sleep_time=sleep_time, time_out=time_out).wait()
File "/usr/lib/python2.7/site-packages/eventlet/event.py", line 121, in wait return hubs.get_hub().switch()
File "/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 294, in switch return self.greenlet.switch()
File "/usr/lib/python2.7/site-packages/oslo_service/loopingcall.py", line 193, in _run_loop result = func(*self.args, **self.kw)
File "/usr/lib/python2.7/site-packages/trove/common/utils.py", line 196, in poll_and_check raise exception.PollTimeOut PollTimeOut: Polling request timed out.