fuel-plugin-contrail/deployment_scripts/puppet/modules/contrail/templates/testbed.py.erb

130 lines
3.5 KiB
Plaintext

from fabric.api import env
<%-
nodes=scope.function_hiera(['nodes'])
keystone=scope.function_hiera(['keystone'])
os_management_vip=scope.function_hiera(['management_vip'])
os_public_vip=scope.function_hiera(['public_vip'])
contrail_node_basename=scope.lookupvar('contrail::contrail_node_basename')
deployment_node_priv_ip=''
mgm_ip=Array.new
mgm_ip_baseos=Array.new
priv_ip=Array.new
role_all=[]
role_ctrl=[]
role_os=[]
role_db=[]
nodes.each do |node|
case node['role']
when /^(primary-)?controller$/
mgm_ip << node['internal_address']
role_all << 'os_ctrl_'+mgm_ip.count.to_s
role_os << 'os_ctrl_'+mgm_ip.count.to_s
when 'base-os'
if node['user_node_name'] =~ /^#{contrail_node_basename}-.*/
priv_ip << node['private_address']
mgm_ip_baseos << node['internal_address']
# Also find out a deployment node
if node['user_node_name'] == scope.lookupvar('contrail::deployment_node')
deployment_node_priv_ip=priv_ip.last
end
role_all << 'c_ctrl_'+priv_ip.count.to_s
role_all << 'c_db_'+priv_ip.count.to_s
role_ctrl << 'c_ctrl_'+priv_ip.count.to_s
role_db << 'c_db_'+priv_ip.count.to_s
end
end
end
-%>
#Management ip addresses of hosts in the cluster
<%- mgm_ip.each_with_index do |ip, i| -%>
os_ctrl_<%= i+1 %> = 'root@<%= ip %>'
<%- end -%>
<%- priv_ip.each_with_index do |ip, i| -%>
c_ctrl_<%= i+1 %> = 'root@<%= ip %>'
<%- end -%>
<%- priv_ip.each_with_index do |ip, i| -%>
c_db_<%= i+1 %> = 'root@<%= ip %>'
<%- end -%>
env.hoststring_mgm_ip= {
<%- mgm_ip_baseos.each_with_index do |ip, i| -%>
c_ctrl_<%= i+1 %> : '<%= ip %>',
<%- end -%>
}
#External routers
ext_routers = [
<%-
gateways=scope.lookupvar('contrail::settings')['contrail_gateways'].split(',').map{|x|x.lstrip}
gateways.each_with_index do |gw, i|
-%>
('gateway<%= i+1 %>','<%= gw %>'),
<%- end -%>
]
#Autonomous system number
router_asn = <%= scope.lookupvar('contrail::settings')['contrail_asnum'] %>
#Host from which the fab commands are triggered to install and provision
<%-
if not defined?(deployment_node_priv_ip)
raise "ERROR: Node named scope.lookupvar('contrail::deployment_node') not found. Cant continue deploy"
end
-%>
deploy_node = 'root@<%= deployment_node_priv_ip %>'
#Role definition of the hosts.
env.roledefs = {
'all': [<%= role_all*',' %>],
'cfgm': [<%= role_ctrl*',' %>],
'openstack': [<%= role_os*',' %>],
'control': [<%= role_ctrl*',' %>],
'compute': [],
'collector': [<%= role_ctrl*',' %>],
'webui': [<%= role_ctrl*',' %>],
'database': [<%= role_db*',' %>],
'build': [deploy_node],
'storage-master': [],
'storage-compute': [],
}
#Openstack admin password
env.openstack_admin_password = '<%= scope.lookupvar('contrail::admin_password') %>'
env.password = 'r00tme'
#Passwords of each host
env.passwords = {
<%- role_all.each do |role| -%>
<%= role %>: 'r00tme',
<%- end -%>
deploy_node: 'r00tme',
}
#For reimage purpose
env.ostypes = {
<%- role_all.each do |role| -%>
<%= role %>: 'ubuntu',
<%- end -%>
}
env.openstack = {
'service_token' : '<%= scope.lookupvar('contrail::admin_token') %>'
}
env.ha = {
'internal_vip' : '<%= os_management_vip %>',
'external_vip' : '<%= os_public_vip %>',
'contrail_internal_vip' : '<%= scope.lookupvar('contrail::contrail_private_vip') %>',
'contrail_external_vip' : '<%= scope.lookupvar('contrail::contrail_mgmt_vip') %>',
}
env.keystone = {
'service_tenant': 'services',
'admin_token' : '<%= scope.lookupvar('contrail::admin_token') %>',
'manage_neutron': 'no',
}
multi_tenancy = True