510 lines
14 KiB
Cheetah
510 lines
14 KiB
Cheetah
#import simplejson as json
|
|
#import uuid
|
|
#from copy import deepcopy
|
|
|
|
## Ceph cluster config
|
|
#set fsid = str(uuid.uuid4())
|
|
#set rbd_secret_uuid = str(uuid.uuid4())
|
|
|
|
#set ceph_osd = $get_role('ceph_osd', None)
|
|
#set public_network_subnet = $ceph_osd.public_network.subnet
|
|
#set cluster_network_subnet = $ceph_osd.cluster_network.subnet
|
|
|
|
#set osd_pool_pg_num = $getVar('osd_pool_pg_num', '1024')
|
|
#set osd_pool_pgp_num = $getVar('osd_pool_pgp_num', '1024')
|
|
#set osd_pool_size = $getVar('osd_pool_size', '3')
|
|
|
|
#set journal_size = $getVar('journal_size', '10000')
|
|
#set osd_op_threads = $getVar('op_threads', 10)
|
|
|
|
#set devices = []
|
|
#if $getVar('osd_devices', None) != None
|
|
#set devices_info = $osd_devices
|
|
#set devices_num = len($devices_info)
|
|
#set devices = [x for x in range($devices_num)]
|
|
#set index = 0
|
|
#for device, config in $devices_info.iteritems()
|
|
#set temp = deepcopy($config)
|
|
#set temp["device"] = $device
|
|
#set devices[index] = $temp
|
|
#set index = $index + 1
|
|
#end for
|
|
#end if
|
|
#set devices = json.dumps($devices, encoding='utf-8')
|
|
|
|
#set radosgw = $getVar('ceph_os_radosgw', '')
|
|
#set radosgw_domain = ''
|
|
#if $radosgw != ''
|
|
#set radosgw_domain = $radosgw.hostname
|
|
#end if
|
|
|
|
|
|
## OpenStack config
|
|
## Contoller node management IP/interface
|
|
#set controller = $get_role('os_compute_controller', $get_role('os_ceph_controller', None))
|
|
#set controller_ip = $controller.management.ip
|
|
#set controller_nic = $controller.management.interface
|
|
|
|
## Compute node management IP/interface
|
|
#set compute = $get_role('os_ceph_compute_worker', None)
|
|
#set compute_nic = $compute.management.interface
|
|
|
|
## Network server/worker node IP/interface
|
|
#set network = $get_role('os_network', None)
|
|
#set network_server = $get_role('os_network_server', [$network, $controller])
|
|
#set network_worker = $get_role('os_network_worker', [$network, $compute])
|
|
|
|
#set network_server_ip = $network_server.management.ip
|
|
#set network_server_nic = $network_server.management.interface
|
|
|
|
## Network worker node management IP/interface
|
|
#set network_worker_ip = $network_worker.management.ip
|
|
#set network_worker_nic = $network_worker.management.interface
|
|
#set network_worker_public_nic = $network_worker.external.interface
|
|
#set network_worker_tenant_nic = $network_worker.tenant.interface
|
|
|
|
## Database node management IP
|
|
#set db_role = $get_role('os_ops_database', $controller)
|
|
#set db_ip = $db_role.management.ip
|
|
#set db_nic = $db_role.management.interface
|
|
|
|
## Message queue node management IP/interface
|
|
#set msg_queue = $get_role('os_ops_messaging', $controller)
|
|
#set msg_queue_ip = $msg_queue.management.ip
|
|
|
|
## Identity (keystone) node IP/interface
|
|
#set identity = $get_role('os_identity', $controller)
|
|
#set identity_ip = $identity.management.ip
|
|
#set identity_nic = $identity.management.interface
|
|
|
|
## Glance node management IP/interface
|
|
#set glance = $get_role('os_ceph_image', $controller)
|
|
#set glance_ip = $glance.management.ip
|
|
#set glance_nic = $glance.management.interface
|
|
|
|
## Cinder node management IP/interface
|
|
#set cinder = $get_role('os_ceph_block_storage_controller', $controller)
|
|
#set cinder_controller_ip = $cinder.management.ip
|
|
#set cinder_controller_nic = $cinder.management.interface
|
|
|
|
## Dashboard node management IP/interface
|
|
#set dash_role = $get_role('os_dashboard', $controller)
|
|
#set dash_ip = $dash_role.management.ip
|
|
|
|
## Set services credentials
|
|
#set db_pass = $getDictValue('service_credentials/mysql/password', 'root')
|
|
#set mq_username = $getDictValue('service_credentials/rabbitmq/username', 'guest')
|
|
#set mq_pass = $getDictValue('service_credentials/rabbitmq/password', 'guest')
|
|
|
|
## Set Openstack neutron config
|
|
#set tenant_network_type = $getDictValue('neutron_config/openvswitch/tenant_network_type', 'gre')
|
|
#set enable_tunneling = True
|
|
#set bridge_mappings = 'physnet1:br-eth1'
|
|
#if $tenant_network_type != 'gre'
|
|
#set enable_tunneling = False
|
|
#set bridge_mappings = ''
|
|
#end if
|
|
|
|
## Utility functions definition
|
|
#def get_role($role_name, $default_roles=None)
|
|
#set target_role = $getVar($role_name, None)
|
|
#if isinstance($target_role, list)
|
|
#if $target_role
|
|
#set target_role = $target_role[0]
|
|
#else
|
|
#set target_role = None
|
|
#end if
|
|
#end if
|
|
#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
|
|
|
|
#def getDictValue($path, $default_value="")
|
|
#set keys = str($path).split('/')
|
|
#set value = $getVar($keys[0], {})
|
|
|
|
#if not $value
|
|
#return $default_value
|
|
#else
|
|
#for $key in $keys[1:]
|
|
#try
|
|
#set value = $value[$key]
|
|
#except
|
|
#return $default_value
|
|
#end try
|
|
#end for
|
|
#end if
|
|
|
|
#return $value
|
|
|
|
#end def
|
|
{
|
|
"name": "ceph_base_tmpl",
|
|
"description": "Environment used in testing the upstream cookbooks and reference Chef repository",
|
|
"cookbook_versions": {
|
|
},
|
|
"json_class": "Chef::Environment",
|
|
"chef_type": "environment",
|
|
"default_attributes": {
|
|
"ceph": {
|
|
"keystone environment": "openstack-ceph",
|
|
"radosgw domain": "$radosgw_domain",
|
|
"config": {
|
|
"fsid": "$fsid",
|
|
"global": {
|
|
"public network": "$public_network_subnet",
|
|
"cluster network": "$cluster_network_subnet",
|
|
"osd pool default pg num": "$osd_pool_pg_num",
|
|
"osd pool default pgp num": "$osd_pool_pgp_num",
|
|
"osd pool default size": "$osd_pool_size",
|
|
"max open files": "131072"
|
|
},
|
|
"osd": {
|
|
"osd journal size": "$journal_size",
|
|
"filestore xattr use omap": true,
|
|
"osd mkfs type": "xfs",
|
|
"osd mount options xfs": "rw,noatime,inode64,logbsize=256k,delaylog",
|
|
"osd mkfs options xfs": "-f -i size=2048",
|
|
"filestore max inline xattr size": "254",
|
|
"filestore max inline xattrs": "6",
|
|
"osd_op_threads": "$osd_op_threads",
|
|
"filestore_queue_max_ops": "500",
|
|
"filestore_queue_committing_max_ops": "5000",
|
|
"journal_max_write_entries": "1000",
|
|
"journal_queue_max_ops": "3000",
|
|
"objecter_inflight_ops": "10240",
|
|
"filestore_queue_max_bytes": "1048576000",
|
|
"filestore_queue_committing_max_bytes": "1048576000",
|
|
"journal_max_write_bytes": "1048576000",
|
|
"journal_queue_max_bytes": "1048576000",
|
|
"ms_dispatch_throttle_bytes": "1048576000",
|
|
"objecter_infilght_op_bytes": "1048576000",
|
|
"filestore_max_sync_interval": "10",
|
|
"filestore_flusher": "false",
|
|
"filestore_flush_min": "0",
|
|
"filestore_sync_flush": true
|
|
}
|
|
},
|
|
"osd_devices": $devices
|
|
},
|
|
"mysql": {
|
|
"server_root_password": "$db_pass",
|
|
"server_debian_password": "$db_pass",
|
|
"server_repl_password": "$db_pass",
|
|
"allow_remote_root": true,
|
|
"root_network_acl": "%"
|
|
},
|
|
"collectd": {
|
|
"server": {
|
|
"host": "metrics",
|
|
"port": "4242",
|
|
"protocol": "tcp"
|
|
}
|
|
},
|
|
"memcached": {
|
|
"bind_interface": "$identity_nic"
|
|
},
|
|
"openstack": {
|
|
"developer_mode": true,
|
|
"use_databags": false,
|
|
"auth": {
|
|
"validate_certs": false
|
|
},
|
|
"block-storage": {
|
|
"syslog": {
|
|
"use": false
|
|
},
|
|
"api": {
|
|
"ratelimit": "False"
|
|
},
|
|
"volume": {
|
|
"driver": "cinder.volume.drivers.rbd.RBDDriver"
|
|
},
|
|
"debug": true,
|
|
"rbd_pool": "volumes",
|
|
"rbd_secret_uuid": "$rbd_secret_uuid",
|
|
"rbd_ceph_conf": "/etc/ceph/ceph.conf",
|
|
"rbd_flatten_volume_from_snapshot": false,
|
|
"rbd_max_clone_depth": 5,
|
|
"glance_api_version": 2
|
|
},
|
|
"dashboard": {
|
|
"use_ssl": "false"
|
|
},
|
|
"compute": {
|
|
"syslog": {
|
|
"use": false
|
|
},
|
|
"libvirt": {
|
|
"bind_interface": "$compute_nic",
|
|
"images_type": "rbd",
|
|
"images_rbd_pool": "vms"
|
|
},
|
|
"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": "$tenant_network_type",
|
|
"tenant_network_types": "$tenant_network_type",
|
|
"network_vlan_ranges": "physnet1:2700:2999",
|
|
"tunnel_id_ranges": "1:1000",
|
|
"enable_security_group": "True"
|
|
},
|
|
"openvswitch": {
|
|
"tenant_network_type": "$tenant_network_type",
|
|
"enable_tunneling": "$enable_tunneling",
|
|
"tunnel_id_ranges": "1:1000",
|
|
"network_vlan_ranges": "physnet1:2700:2999",
|
|
"bridge_mappings": "$bridge_mappings",
|
|
"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"
|
|
}
|
|
},
|
|
"endpoints": {
|
|
"db": {
|
|
"host": "$db_ip"
|
|
},
|
|
"mq": {
|
|
"host": "$msg_queue_ip"
|
|
},
|
|
"compute-api": {
|
|
"host": "$controller_ip",
|
|
"scheme": "http",
|
|
"port": "8774",
|
|
"path": "/v2/%(tenant_id)s"
|
|
},
|
|
"compute-api-bind": {
|
|
"bind_interface": "$controller_nic"
|
|
},
|
|
"compute-ec2-admin": {
|
|
"host": "$controller_ip",
|
|
"scheme": "http",
|
|
"port": "8773",
|
|
"path": "/services/Admin"
|
|
},
|
|
"compute-ec2-api": {
|
|
"host": "$controller_ip",
|
|
"scheme": "http",
|
|
"port": "8773",
|
|
"path": "/services/Cloud"
|
|
},
|
|
"compute-novnc": {
|
|
"host": "$controller_ip",
|
|
"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": "$glance_ip",
|
|
"scheme": "http",
|
|
"port": "9292",
|
|
"path": "/v2"
|
|
},
|
|
"image-api-bind": {
|
|
"bind_interface": "$glance_nic"
|
|
},
|
|
"image-registry": {
|
|
"host": "$glance_ip",
|
|
"scheme": "http",
|
|
"port": "9191",
|
|
"path": "/v2"
|
|
},
|
|
"image-registry-bind": {
|
|
"bind_interface": "$glance_nic"
|
|
},
|
|
"identity-bind": {
|
|
"bind_interface": "$identity_nic"
|
|
},
|
|
"identity-api": {
|
|
"host": "$identity_ip",
|
|
"scheme": "http",
|
|
"port": "5000",
|
|
"path": "/v2.0"
|
|
},
|
|
"identity-admin": {
|
|
"host": "$identity_ip",
|
|
"scheme": "http",
|
|
"port": "35357",
|
|
"path": "/v2.0"
|
|
},
|
|
"block-storage-api": {
|
|
"host": "$cinder_controller_ip",
|
|
"scheme": "http",
|
|
"port": "8776",
|
|
"path": "/v1/%(tenant_id)s"
|
|
},
|
|
"block-storage-api-bind": {
|
|
"bind_interface": "$cinder_controller_nic"
|
|
},
|
|
"telemetry-api": {
|
|
"host": "$controller_ip",
|
|
"scheme": "http",
|
|
"port": "8777",
|
|
"path": "/v1"
|
|
},
|
|
"network-api": {
|
|
"host": "$network_server_ip",
|
|
"scheme": "http",
|
|
"port": "9696",
|
|
"path": ""
|
|
},
|
|
"network-api-bind": {
|
|
"bind_interface": "$network_server_nic"
|
|
},
|
|
"orchestration-api": {
|
|
"host": "$controller_ip",
|
|
"scheme": "http",
|
|
"port": "8004",
|
|
"path": "/v1/%(tenant_id)s"
|
|
},
|
|
"orchestration-api-cfn": {
|
|
"host": "$controller_ip",
|
|
"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",
|
|
"default_store": "rbd"
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"mq": {
|
|
"user": "$mq_username",
|
|
"password": "$mq_pass",
|
|
"vhost": "/nova",
|
|
"network": {
|
|
"service_type": "rabbitmq"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|