summaryrefslogtreecommitdiffstats
path: root/common/puppet-opnfv/manifests/external_net_presetup.pp
diff options
context:
space:
mode:
Diffstat (limited to 'common/puppet-opnfv/manifests/external_net_presetup.pp')
-rw-r--r--common/puppet-opnfv/manifests/external_net_presetup.pp102
1 files changed, 102 insertions, 0 deletions
diff --git a/common/puppet-opnfv/manifests/external_net_presetup.pp b/common/puppet-opnfv/manifests/external_net_presetup.pp
new file mode 100644
index 000000000..b7c7c5f07
--- /dev/null
+++ b/common/puppet-opnfv/manifests/external_net_presetup.pp
@@ -0,0 +1,102 @@
+#Copyright 2015 Open Platform for NFV Project, Inc. and its contributors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class opnfv::external_net_presetup {
+
+ if $public_gateway == '' { fail('public_gateway is empty') }
+ if $public_dns == '' { fail('public_dns is empty') }
+ if $public_network == '' { fail('public_network is empty') }
+ if $public_subnet == '' { fail('public_subnet is empty') }
+ if $public_allocation_start == '' { fail('public_allocation_start is empty') }
+ if $public_allocation_end == '' { fail('public_allocation_end is empty') }
+ if !$controllers_hostnames_array { fail('controllers_hostnames_array is empty') }
+ $controllers_hostnames_array_str = $controllers_hostnames_array
+ $controllers_hostnames_array = split($controllers_hostnames_array, ',')
+
+ #find public NIC
+ $public_nic = get_nic_from_network("$public_network")
+ $public_nic_ip = get_ip_from_nic("$public_nic")
+ $public_nic_netmask = get_netmask_from_nic("$public_nic")
+
+ if ($public_nic == '') or ($public_nic_ip == '') or ($public_nic == "br-ex") or ($public_nic == "br_ex") {
+ notify {"Skipping augeas, public_nic ${public_nic}, public_nic_ip ${public_nic_ip}":}
+
+ exec {'ovs-vsctl -t 10 -- --may-exist add-br br-ex':
+ path => ["/usr/sbin/", "/usr/bin/"],
+ unless => 'ip addr show br-ex | grep "inet "',
+ before => Exec['restart-network-public-nic-ip'],
+ }
+ ~>
+ exec {'systemctl restart network':
+ path => ["/usr/sbin/", "/usr/bin/"],
+ refreshonly => 'true',
+ }
+
+ exec {'restart-network-public-nic-ip':
+ command => 'systemctl restart network',
+ path => ["/usr/sbin/", "/usr/bin/"],
+ onlyif => 'ip addr show | grep $(ip addr show br-ex | grep -Eo "inet [\.0-9]+" | cut -d " " -f2) | grep -v br-ex',
+ }
+
+ } else {
+ #reconfigure public interface to be ovsport
+ augeas { "main-$public_nic":
+ context => "/files/etc/sysconfig/network-scripts/ifcfg-$public_nic",
+ changes => [
+ "rm IPADDR",
+ "rm NETMASK",
+ "rm GATEWAY",
+ "rm DNS1",
+ "rm BOOTPROTO",
+ "rm DEFROUTE",
+ "rm IPV6_DEFROUTE",
+ "rm IPV6_PEERDNS",
+ "rm IPV6_PEERROUTES",
+ "rm PEERROUTES",
+ "set PEERDNS no",
+ "set BOOTPROTO static",
+ "set IPV6INIT no",
+ "set IPV6_AUTOCONF no",
+ "set ONBOOT yes",
+ "set TYPE OVSPort",
+ "set OVS_BRIDGE br-ex",
+ "set PROMISC yes"
+
+ ],
+ before => Class["quickstack::pacemaker::params"],
+ require => Service["openvswitch"],
+ }
+
+ ->
+ #create br-ex interface
+ file { 'external_bridge':
+ path => '/etc/sysconfig/network-scripts/ifcfg-br-ex',
+ owner => 'root',
+ group => 'root',
+ mode => '0644',
+ content => template('trystack/br_ex.erb'),
+ before => Class["quickstack::pacemaker::params"],
+ }
+ ->
+ exec {'ovs-vsctl -t 10 -- --may-exist add-br br-ex':
+ path => ["/usr/sbin/", "/usr/bin/"],
+ }
+ ~>
+ exec {'systemctl restart network':
+ path => ["/usr/sbin/", "/usr/bin/"],
+ refreshonly => 'true',
+ }
+
+ }
+}