diff options
| author | Micah Anderson <micah@leap.se> | 2015-01-06 12:30:00 -0500 | 
|---|---|---|
| committer | Micah Anderson <micah@leap.se> | 2015-01-06 12:30:00 -0500 | 
| commit | 3d2c6f315e99ad4fb9ceac9f392b7eab27f924aa (patch) | |
| tree | d725470402edfa0eca3ae5e5094dbc6b26d14b0a /puppet/modules | |
| parent | bd098f1691307685958d4a07caba9812c025e163 (diff) | |
| parent | d063e35d3e29b3cedc810b8e5ca1855c841d8f9e (diff) | |
Merge remote-tracking branch 'cz8s/check_dhcp' into develop (#6610)
Diffstat (limited to 'puppet/modules')
4 files changed, 27 insertions, 5 deletions
diff --git a/puppet/modules/site_config/lib/facter/dhcp_enabled.rb b/puppet/modules/site_config/lib/facter/dhcp_enabled.rb new file mode 100644 index 00000000..33220da3 --- /dev/null +++ b/puppet/modules/site_config/lib/facter/dhcp_enabled.rb @@ -0,0 +1,22 @@ +require 'facter' +def dhcp_enabled?(ifs, recurse=true) +  dhcp = false +  included_ifs = [] +  if FileTest.exists?(ifs) +    File.open(ifs) do |file| +      dhcp = file.enum_for(:each_line).any? do |line| +        if recurse && line =~ /^\s*source\s+([^\s]+)/ +          included_ifs += Dir.glob($1) +        end +        line =~ /inet\s+dhcp/ +      end +    end +  end +  dhcp || included_ifs.any? { |ifs| dhcp_enabled?(ifs, false) } +end +Facter.add(:dhcp_enabled) do +  confine :osfamily => 'Debian' +  setcode do +    dhcp_enabled?('/etc/network/interfaces') +  end +end diff --git a/puppet/modules/site_config/manifests/default.pp b/puppet/modules/site_config/manifests/default.pp index 790b5a16..a20ffc3b 100644 --- a/puppet/modules/site_config/manifests/default.pp +++ b/puppet/modules/site_config/manifests/default.pp @@ -25,10 +25,7 @@ class site_config::default {    # i.e. openstack/aws nodes, vagrant nodes    # fix dhclient from changing resolver information -  if $::ec2_instance_id { -    include site_config::dhclient -  } -  if $::virtual == 'virtualbox' { +   if $::dhcp_enabled == 'true' {      include site_config::dhclient    } diff --git a/puppet/modules/site_config/manifests/dhclient.pp b/puppet/modules/site_config/manifests/dhclient.pp index 7ac0caf3..dbe2ef1c 100644 --- a/puppet/modules/site_config/manifests/dhclient.pp +++ b/puppet/modules/site_config/manifests/dhclient.pp @@ -17,7 +17,9 @@ class site_config::dhclient {    exec { 'reload_dhclient':      refreshonly => true, -    command     => '/usr/local/sbin/reload_dhclient'; +    command     => '/usr/local/sbin/reload_dhclient', +    before      => Class['site_config::resolvconf'], +    require     => File['/usr/local/sbin/reload_dhclient'],    }    file { '/etc/dhcp/dhclient-enter-hooks.d/disable_resolvconf': diff --git a/puppet/modules/site_couchdb/manifests/bigcouch.pp b/puppet/modules/site_couchdb/manifests/bigcouch.pp index 16593ec7..82c85b52 100644 --- a/puppet/modules/site_couchdb/manifests/bigcouch.pp +++ b/puppet/modules/site_couchdb/manifests/bigcouch.pp @@ -17,6 +17,7 @@ class site_couchdb::bigcouch {    # stunnel must running correctly before bigcouch dbs can be set up.    #    Class['site_config::default'] +    -> Class['site_config::resolvconf']      -> Class['couchdb::bigcouch::package::cloudant']      -> Service['shorewall']      -> Exec['refresh_stunnel']  | 
