modify config_manager and add openstack ha tmpl
Change-Id: Ib9b0cac53a4a33ec4fe133de24dc9361b5a15dab
This commit is contained in:
parent
9146158be5
commit
b93544704c
@ -35,12 +35,11 @@ class DeployManager(object):
|
||||
|
||||
# Get OS installer
|
||||
os_installer_name = adapter_info[const.OS_INSTALLER][const.NAME]
|
||||
os_hosts_info = self._get_hosts_for_os_installation(hosts_info)
|
||||
self.os_installer = DeployManager._get_installer(OSInstaller,
|
||||
os_installer_name,
|
||||
adapter_info,
|
||||
cluster_info,
|
||||
os_hosts_info)
|
||||
hosts_info)
|
||||
|
||||
# Get package installer
|
||||
pk_info = adapter_info.setdefault(const.PK_INSTALLER, {})
|
||||
@ -148,18 +147,6 @@ class DeployManager(object):
|
||||
if self.pk_installer:
|
||||
self.pk_installer.delete_hosts(delete_cluster=delete_cluster)
|
||||
|
||||
def _get_hosts_for_os_installation(self, hosts_info):
|
||||
"""Get info of hosts which need to install/reinstall OS."""
|
||||
hosts_list = {}
|
||||
for host_id in hosts_info:
|
||||
reinstall_os_flag = hosts_info[host_id][const.REINSTALL_OS_FLAG]
|
||||
if not reinstall_os_flag:
|
||||
continue
|
||||
|
||||
hosts_list[host_id] = hosts_info[host_id]
|
||||
|
||||
return hosts_list
|
||||
|
||||
|
||||
class PowerManager(object):
|
||||
"""Manage host to power on, power off, and reset."""
|
||||
|
@ -59,6 +59,15 @@ class BaseConfigManager(object):
|
||||
|
||||
return self.hosts_info.keys()
|
||||
|
||||
def get_hosts_id_list_for_os_installation(self):
|
||||
"""Get info of hosts which need to install/reinstall OS."""
|
||||
result = []
|
||||
all_host_ids = self.get_host_id_list()
|
||||
for host_id in all_host_ids:
|
||||
if self.hosts_info[host_id][const.REINSTALL_OS_FLAG]:
|
||||
result.append(host_id)
|
||||
return result
|
||||
|
||||
def get_cluster_flavor_info(self):
|
||||
return self.__get_cluster_item(const.FLAVOR, {})
|
||||
|
||||
|
@ -117,7 +117,7 @@ class CobblerInstaller(OSInstaller):
|
||||
}
|
||||
}
|
||||
"""
|
||||
host_ids = self.config_manager.get_host_id_list()
|
||||
host_ids = self.config_manager.get_hosts_id_list_for_os_installation()
|
||||
if not host_ids:
|
||||
# No hosts need to install OS
|
||||
logging.info("Cobbler: No host needs to install OS.")
|
||||
|
@ -54,9 +54,3 @@ class TestDeployManager(unittest2.TestCase):
|
||||
|
||||
test_manager = DeployManager(adapter_info, cluster_info, hosts_info)
|
||||
self.assertIsNotNone(test_manager)
|
||||
|
||||
# Test hepler function _get_hosts_for_os_installation return correct
|
||||
# number of hosts config for os deployment. In config_data, two out of
|
||||
# three hosts need to install OS.
|
||||
hosts_list = test_manager._get_hosts_for_os_installation(hosts_info)
|
||||
self.assertEqual(2, len(hosts_list))
|
||||
|
@ -22,4 +22,14 @@ FLAVORS = [{
|
||||
'os-network-server', 'os-block-storage-controller', 'os-block-storage-volume',
|
||||
'os-image', 'os-dashboard'
|
||||
]
|
||||
}, {
|
||||
'flavor': 'HA-multinodes',
|
||||
'display_name': 'Multi-node Cluster with HA',
|
||||
'template': 'ha_multinodes.tmpl',
|
||||
'roles': [
|
||||
'os-ops-database', 'os-identity', 'os-ops-messaging', 'os-ha',
|
||||
'os-compute-controller', 'os-compute-worker', 'os-network-worker',
|
||||
'os-network-server', 'os-block-storage-controller', 'os-block-storage-volume',
|
||||
'os-image', 'os-dashboard'
|
||||
]
|
||||
}]
|
||||
|
@ -89,5 +89,16 @@ METADATA = {
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
'ha_proxy': {
|
||||
'_self': {
|
||||
},
|
||||
'vip': {
|
||||
'_self': {
|
||||
'is_required': True,
|
||||
'field': 'general',
|
||||
'mapping_to': 'ha_vip'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ ROLES = [{
|
||||
'display_name': 'dashboard node',
|
||||
'description': 'dashboard node'
|
||||
}, {
|
||||
'role': 'ha-proxy',
|
||||
'role': 'os-ha',
|
||||
'display_name': 'ha proxy node',
|
||||
'description': 'ha proxy node',
|
||||
'optional': True
|
||||
|
@ -0,0 +1,384 @@
|
||||
#set ha_vip = $getVar('ha_vip', None)
|
||||
#if not ha_vip
|
||||
#raise ValueError("ha_vip hasnot been set yet!")
|
||||
#end if
|
||||
|
||||
#set controller_role = $get_role('os_compute_controller', $getVar('os_controller', None))
|
||||
|
||||
## Contoller node management IP/interface
|
||||
#set controller_ip = $controller_role.management.ip
|
||||
#set controller_nic = $controller_role.management.interface
|
||||
|
||||
## Compute node management IP/interface
|
||||
#set compute_role = $getVar('os_compute_worker', None)
|
||||
#set compute_nic = $compute_role.management.interface
|
||||
|
||||
## Network server/worker node IP/interface
|
||||
#set network = $getVar('os_network', None)
|
||||
#set network_server_role = $get_role('os_network_server', [$network, $controller_role])
|
||||
#set network_worker_role = $get_role('os_network_worker', [$network, $compute_role])
|
||||
|
||||
#set network_server_ip = $network_server_role.management.ip
|
||||
#set network_server_nic = $network_server_role.management.interface
|
||||
|
||||
## Network worker node management IP/interface
|
||||
#set network_worker_ip = $network_worker_role.management.ip
|
||||
#set network_worker_nic = $network_worker_role.management.interface
|
||||
#set network_worker_tenant_nic = $network_worker_role.tenant.interface
|
||||
#set network_worker_public_nic = $network_worker_role.external.interface
|
||||
|
||||
## Database node management IP
|
||||
#set db_role = $get_role('os_ops_database', $controller_role)
|
||||
#set db_ip = $db_role.management.ip
|
||||
#set db_nic = $db_role.management.interface
|
||||
|
||||
## Message queue node management IP/interface
|
||||
#set msg_queue_role = $get_role('os_ops_messaging', $controller_role)
|
||||
#set msg_queue_ip = $msg_queue_role.management.ip
|
||||
|
||||
## Identity (keystone) node IP/interface
|
||||
#set identity_role = $get_role('os_identity', $controller_role)
|
||||
#set identity_ip = $identity_role.management.ip
|
||||
#set identity_nic = $identity_role.management.interface
|
||||
|
||||
## Glance node management IP/interface
|
||||
#set glance_role = $get_role('os_image', $controller_role)
|
||||
#set glance_ip = $glance_role.management.ip
|
||||
#set glance_nic = $glance_role.management.interface
|
||||
|
||||
## Cinder node management IP/interface
|
||||
#set cinder_role = $get_role('os_block_storage_controller', $controller_role)
|
||||
#set cinder_controller_ip = $cinder_role.management.ip
|
||||
#set cinder_controller_nic = $cinder_role.management.interface
|
||||
|
||||
## Dashboard node management IP/interface
|
||||
#set dash_role = $get_role('os_dashboard', $controller_role)
|
||||
#set dash_ip = $dash_role.management.ip
|
||||
|
||||
#def get_role($role_name, $default_roles=None)
|
||||
#set target_role = $getVar($role_name, None)
|
||||
#if $target_role is None and $default_roles is not None
|
||||
#if isinstance($default_roles, list)
|
||||
#for $role in $default_roles
|
||||
#if $role is not None
|
||||
#set target_role = $role
|
||||
#break
|
||||
#end if
|
||||
#end for
|
||||
#else
|
||||
#set target_role = $default_roles
|
||||
#end if
|
||||
#end if
|
||||
#return $target_role
|
||||
#end def
|
||||
{
|
||||
"name": "testing",
|
||||
"description": "Environment used in testing the upstream cookbooks and reference Chef repository",
|
||||
"cookbook_versions": {
|
||||
},
|
||||
"json_class": "Chef::Environment",
|
||||
"chef_type": "environment",
|
||||
"default_attributes": {
|
||||
"local_repo": "",
|
||||
"mysql": {
|
||||
"server_root_password": "test",
|
||||
"server_debian_password": "root",
|
||||
"server_repl_password": "root",
|
||||
"allow_remote_root": true,
|
||||
"root_network_acl": "%"
|
||||
},
|
||||
"collectd": {
|
||||
"server": {
|
||||
"host": "metrics",
|
||||
"port": "2003",
|
||||
"protocol": "udp"
|
||||
}
|
||||
},
|
||||
"haproxy": {
|
||||
"incoming_address": "$ha_vip"
|
||||
},
|
||||
"keepalived": {
|
||||
"vip": {
|
||||
"ipaddress": "$ha_vip",
|
||||
"interface": "eth0"
|
||||
}
|
||||
},
|
||||
"openstack": {
|
||||
"auth": {
|
||||
"validate_certs": false
|
||||
},
|
||||
"block-storage": {
|
||||
"syslog": {
|
||||
"use": false
|
||||
},
|
||||
"api": {
|
||||
"ratelimit": "False"
|
||||
},
|
||||
"debug": true
|
||||
},
|
||||
"dashboard": {
|
||||
"use_ssl": "false"
|
||||
},
|
||||
"compute": {
|
||||
"syslog": {
|
||||
"use": false
|
||||
},
|
||||
"libvirt": {
|
||||
"bind_interface": "$compute_nic"
|
||||
},
|
||||
"novnc_proxy": {
|
||||
"bind_interface": "$compute_nic"
|
||||
},
|
||||
"xvpvnc_proxy": {
|
||||
"bind_interface": "$compute_nic"
|
||||
},
|
||||
"ratelimit": {
|
||||
"api": {
|
||||
"enabled": false
|
||||
},
|
||||
"volume": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"service_type": "neutron"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"verbose": "True",
|
||||
"debug": "True",
|
||||
"service_plugins": [
|
||||
"router"
|
||||
],
|
||||
"ml2": {
|
||||
"type_drivers": "gre",
|
||||
"tenant_network_types": "gre",
|
||||
"tunnel_id_ranges": "1:1000",
|
||||
"enable_security_group": "True"
|
||||
},
|
||||
"openvswitch": {
|
||||
"tenant_network_type": "gre",
|
||||
"enable_tunneling": "True",
|
||||
"tunnel_id_ranges": "1:1000",
|
||||
"bind_interface": "$network_worker_tenant_nic"
|
||||
},
|
||||
"l3": {
|
||||
"external_network_bridge_interface": "$network_worker_public_nic"
|
||||
}
|
||||
},
|
||||
"db": {
|
||||
"bind_interface": "$db_nic",
|
||||
"compute": {
|
||||
"host": "$db_ip"
|
||||
},
|
||||
"identity": {
|
||||
"host": "$db_ip"
|
||||
},
|
||||
"image": {
|
||||
"host": "$db_ip"
|
||||
},
|
||||
"network": {
|
||||
"host": "$db_ip"
|
||||
},
|
||||
"volume": {
|
||||
"host": "$db_ip"
|
||||
},
|
||||
"dashboard": {
|
||||
"host": "$db_ip"
|
||||
},
|
||||
"telemetry": {
|
||||
"host": "$db_ip"
|
||||
},
|
||||
"orchestration": {
|
||||
"host": "$db_ip"
|
||||
}
|
||||
},
|
||||
"developer_mode": true,
|
||||
"endpoints": {
|
||||
"db": {
|
||||
"host": "$db_ip"
|
||||
},
|
||||
"mq": {
|
||||
"host": "$msg_queue_ip"
|
||||
},
|
||||
"compute-api": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "8774",
|
||||
"path": "/v2/%(tenant_id)s"
|
||||
},
|
||||
"compute-api-bind": {
|
||||
"bind_interface": "$compute_nic"
|
||||
},
|
||||
"compute-ec2-admin": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "8773",
|
||||
"path": "/services/Admin"
|
||||
},
|
||||
"compute-ec2-api": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "8773",
|
||||
"path": "/services/Cloud"
|
||||
},
|
||||
"compute-novnc": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "6080",
|
||||
"path": "/vnc_auto.html"
|
||||
},
|
||||
"compute-novnc-bind": {
|
||||
"bind_interface": "$controller_nic"
|
||||
},
|
||||
"compute-vnc-bind": {
|
||||
"bind_interface" : "$compute_nic"
|
||||
},
|
||||
"vnc_bind": {
|
||||
"bind_interface": "$controller_nic"
|
||||
},
|
||||
"image-api": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "9292",
|
||||
"path": "/v2"
|
||||
},
|
||||
"image-api-bind": {
|
||||
"bind_interface": "$glance_nic"
|
||||
},
|
||||
"image-registry": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "9191",
|
||||
"path": "/v2"
|
||||
},
|
||||
"image-registry-bind": {
|
||||
"bind_interface": "$glance_nic"
|
||||
},
|
||||
"identity-bind": {
|
||||
"bind_interface": "$identity_nic"
|
||||
},
|
||||
"identity-api": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "5000",
|
||||
"path": "/v2.0"
|
||||
},
|
||||
"identity-admin": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "35357",
|
||||
"path": "/v2.0"
|
||||
},
|
||||
"block-storage-api": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "8776",
|
||||
"path": "/v1/%(tenant_id)s"
|
||||
},
|
||||
"block-storage-api-bind": {
|
||||
"bind_interface": "$cinder_controller_nic"
|
||||
},
|
||||
"telemetry-api": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "8777",
|
||||
"path": "/v1"
|
||||
},
|
||||
"network-api": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "9696",
|
||||
"path": ""
|
||||
},
|
||||
"network-api-bind": {
|
||||
"bind_interface": "$network_server_nic"
|
||||
},
|
||||
"orchestration-api": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "8004",
|
||||
"path": "/v1/%(tenant_id)s"
|
||||
},
|
||||
"orchestration-api-cfn": {
|
||||
"host": "$ha_vip",
|
||||
"scheme": "http",
|
||||
"port": "8000",
|
||||
"path": "/v1"
|
||||
}
|
||||
},
|
||||
"identity": {
|
||||
"admin_user": "admin",
|
||||
"bind_interface": "$identity_nic",
|
||||
"catalog": {
|
||||
"backend": "sql"
|
||||
},
|
||||
"debug": true,
|
||||
"roles": [
|
||||
"admin",
|
||||
"member"
|
||||
],
|
||||
"syslog": {
|
||||
"use": false
|
||||
},
|
||||
"tenants": [
|
||||
"admin",
|
||||
"service",
|
||||
"demo"
|
||||
],
|
||||
"token": {
|
||||
"backend": "sql"
|
||||
},
|
||||
"users": {
|
||||
"admin": {
|
||||
"password": "admin",
|
||||
"default_tenant": "admin",
|
||||
"roles": {
|
||||
"admin": [
|
||||
"admin"
|
||||
]
|
||||
}
|
||||
},
|
||||
"demo": {
|
||||
"password": "demo",
|
||||
"default_tenant": "demo",
|
||||
"roles": {
|
||||
"member": [
|
||||
"demo"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"image": {
|
||||
"api": {
|
||||
"bind_interface": "$glance_nic"
|
||||
},
|
||||
"debug": true,
|
||||
"registry": {
|
||||
"bind_interface": "$glance_nic"
|
||||
},
|
||||
"syslog": {
|
||||
"use": false
|
||||
},
|
||||
"upload_image": {
|
||||
"cirros": "http://download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img"
|
||||
},
|
||||
"upload_images": [
|
||||
"cirros"
|
||||
]
|
||||
},
|
||||
"memcached": {
|
||||
"bind_interface": "$identity_nic"
|
||||
},
|
||||
"mq": {
|
||||
"user": "guest",
|
||||
"password": "test",
|
||||
"vhost": "/nova",
|
||||
"network": {
|
||||
"service_type": "rabbitmq"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user