130 lines
3.5 KiB
Plaintext
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
|