1 #Copyright 2015 Open Platform for NFV Project, Inc. and its contributors
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 class opnfv::external_net_presetup {
17 if $public_gateway == '' { fail('public_gateway is empty') }
18 if $public_dns == '' { fail('public_dns is empty') }
19 if $public_network == '' { fail('public_network is empty') }
20 if $public_subnet == '' { fail('public_subnet is empty') }
21 if $public_allocation_start == '' { fail('public_allocation_start is empty') }
22 if $public_allocation_end == '' { fail('public_allocation_end is empty') }
23 if !$controllers_hostnames_array { fail('controllers_hostnames_array is empty') }
24 $controllers_hostnames_array_str = $controllers_hostnames_array
25 $controllers_hostnames_array = split($controllers_hostnames_array, ',')
27 if ($admin_network != '') and ($admin_network != 'false') {
28 $admin_nic = get_nic_from_network("$admin_network")
29 if $admin_nic == '' { fail('admin_nic was not found') }
30 $admin_ip = get_ip_from_nic("$admin_nic")
31 $admin_netmask = get_netmask_from_nic("$admin_nic")
32 if !$admin_ip { fail("admin_ip was not found $admin_nic") }
33 if !$admin_netmask { fail("admin_netmask was not found on $admin_nic") }
35 #Modify ifcfg Admin network
36 augeas { "main-$admin_nic":
37 context => "/files/etc/sysconfig/network-scripts/ifcfg-$admin_nic",
39 "set IPADDR $admin_ip",
40 "set NETMASK $admin_netmask",
49 "set BOOTPROTO static",
51 "set IPV6_AUTOCONF no",
55 notify => Exec['systemctl restart network'],
60 if ($private_network != '') and ($private_network != 'false') {
61 $private_nic = get_nic_from_network("$private_network")
62 if $private_nic == '' { fail('private_nic was not found') }
63 notify {"Private nic $private_nic":}
64 $private_ip = get_ip_from_nic("$private_nic")
65 $private_netmask = get_netmask_from_nic("$private_nic")
66 if !$private_ip { fail("private_ip was not found on $private_nic") }
67 if !$private_netmask { fail("private_netmask was not found on $private_nic") }
69 #Modify ifcfg private network
70 augeas { "main-$private_nic":
71 context => "/files/etc/sysconfig/network-scripts/ifcfg-$private_nic",
73 "set IPADDR $private_ip",
74 "set NETMASK $private_netmask",
83 "set BOOTPROTO static",
85 "set IPV6_AUTOCONF no",
89 notify => Exec['systemctl restart network'],
95 $public_nic = get_nic_from_network("$public_network")
96 $public_nic_ip = get_ip_from_nic("$public_nic")
97 $public_nic_netmask = get_netmask_from_nic("$public_nic")
99 if ($public_nic == '') or ($public_nic_ip == '') or ($public_nic == "br-ex") or ($public_nic == "br_ex") {
100 notify {"Skipping augeas, public_nic ${public_nic}, public_nic_ip ${public_nic_ip}":}
102 exec {'ovs-vsctl -t 10 -- --may-exist add-br br-ex':
103 path => ["/usr/sbin/", "/usr/bin/"],
104 unless => 'ip addr show br-ex | grep "inet "',
105 before => Exec['restart-network-public-nic-ip'],
108 exec {'systemctl restart network':
109 path => ["/usr/sbin/", "/usr/bin/"],
110 refreshonly => 'true',
113 exec {'restart-network-public-nic-ip':
114 command => 'systemctl restart network',
115 path => ["/usr/sbin/", "/usr/bin/"],
116 onlyif => 'ip addr show | grep $(ip addr show br-ex | grep -Eo "inet [\.0-9]+" | cut -d " " -f2) | grep -v br-ex',
120 #reconfigure public interface to be ovsport
121 augeas { "main-$public_nic":
122 context => "/files/etc/sysconfig/network-scripts/ifcfg-$public_nic",
132 "rm IPV6_PEERROUTES",
135 "set BOOTPROTO static",
137 "set IPV6_AUTOCONF no",
140 "set OVS_BRIDGE br-ex",
144 before => Class["quickstack::pacemaker::params"],
145 require => Service["openvswitch"],
149 #create br-ex interface
150 file { 'external_bridge':
151 path => '/etc/sysconfig/network-scripts/ifcfg-br-ex',
155 content => template('opnfv/br_ex.erb'),
156 before => Class["quickstack::pacemaker::params"],
159 exec {'ovs-vsctl -t 10 -- --may-exist add-br br-ex':
160 path => ["/usr/sbin/", "/usr/bin/"],
163 exec {'systemctl restart network':
164 path => ["/usr/sbin/", "/usr/bin/"],
165 refreshonly => 'true',