From 1e2cac92bbb667ab7e84e121f125f38976f34d3a Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 1 Feb 2016 11:54:33 +0100 Subject: [refactor] Don't declare dependencies for apt resources The apt module now takes care of all the dependencies removed from `site_apt`. Also, the dependency to install the `lsb` package after `refresh_apt` is unnesseccary because lsb facts won't work anyway on the first run if `lsb` is not installed before, so we can safely remove it. --- puppet/modules/site_apt/manifests/init.pp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/puppet/modules/site_apt/manifests/init.pp b/puppet/modules/site_apt/manifests/init.pp index c809a837..fea4b8e7 100644 --- a/puppet/modules/site_apt/manifests/init.pp +++ b/puppet/modules/site_apt/manifests/init.pp @@ -52,13 +52,10 @@ class site_apt { pin => 'origin "deb.leap.se"' } - # All packages should be installed _after_ refresh_apt is called, - # which does an apt-get update. - # There is one exception: - # The creation of sources.list depends on the lsb package +# All packages should be installed _after_ refresh_apt is called, +# which does an apt-get update. + + Exec['refresh_apt'] -> + Package <||> - File['/etc/apt/preferences'] -> - Apt::Preferences_snippet <| |> -> - Exec['refresh_apt'] -> - Package <| ( title != 'lsb' ) |> } -- cgit v1.2.3 From 8f1c23dfb5a08240235301bbc07e1bbe82569b7b Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 1 Feb 2016 13:24:53 +0100 Subject: [refactor] Remove atomic apt package dependecy `site_config::default.pp` takes care the all packages are installed before `Exec['refresh_apt']`, so we don't need to add it here for a single package. --- puppet/modules/site_apt/manifests/leap_repo.pp | 3 --- puppet/modules/site_config/manifests/setup.pp | 3 +-- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/puppet/modules/site_apt/manifests/leap_repo.pp b/puppet/modules/site_apt/manifests/leap_repo.pp index a1382374..60948d91 100644 --- a/puppet/modules/site_apt/manifests/leap_repo.pp +++ b/puppet/modules/site_apt/manifests/leap_repo.pp @@ -13,7 +13,4 @@ class site_apt::leap_repo { ensure => latest } - # We wont be able to install the leap-keyring package unless the leap apt - # source has been added and apt has been refreshed - Exec['refresh_apt'] -> Package['leap-keyring'] } diff --git a/puppet/modules/site_config/manifests/setup.pp b/puppet/modules/site_config/manifests/setup.pp index dba5fa14..82dfe76d 100644 --- a/puppet/modules/site_config/manifests/setup.pp +++ b/puppet/modules/site_config/manifests/setup.pp @@ -24,8 +24,7 @@ class site_config::setup { include site_apt package { 'facter': - ensure => latest, - require => Exec['refresh_apt'] + ensure => latest } # if squid_deb_proxy_client is set to true, install and configure -- cgit v1.2.3 From 4e2e0737efe244fb3d13c82d441a6804c1e9918d Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 1 Feb 2016 13:54:18 +0100 Subject: [bug] Fix duplicate definition error for Class[Apt] We need to include class `site_config::default` in class `site_config::slow` so we don't get this duplicate definition: - [local1.bitmask.local] Error: Duplicate declaration: Class[Apt] is already declared; cannot redeclare at /srv/leap/puppet/modules/site_apt/manifests/init.pp:29 on node local1.bitmask.local To be honest, i didn't figuered out the real cause of this, but it works with this. --- puppet/modules/site_config/manifests/slow.pp | 1 + 1 file changed, 1 insertion(+) diff --git a/puppet/modules/site_config/manifests/slow.pp b/puppet/modules/site_config/manifests/slow.pp index de276bc3..8e9b7035 100644 --- a/puppet/modules/site_config/manifests/slow.pp +++ b/puppet/modules/site_config/manifests/slow.pp @@ -4,6 +4,7 @@ class site_config::slow { tag 'leap_slow' + include site_config::default include apt::update class { 'site_apt::dist_upgrade': } } -- cgit v1.2.3 From 432b139f6529fab2f190b7f066064559ecd5a5d5 Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 1 Feb 2016 16:53:10 +0100 Subject: [refactor] Use Exec[apt_updated] instead of Exec[refresh_apt] Because this is the recommended way of depnending in the apt README. --- puppet/modules/site_apt/manifests/dist_upgrade.pp | 2 +- puppet/modules/site_apt/manifests/init.pp | 2 +- puppet/modules/site_config/manifests/default.pp | 2 +- puppet/modules/site_config/manifests/remove/jessie.pp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/puppet/modules/site_apt/manifests/dist_upgrade.pp b/puppet/modules/site_apt/manifests/dist_upgrade.pp index 40e2dd58..0eb98cea 100644 --- a/puppet/modules/site_apt/manifests/dist_upgrade.pp +++ b/puppet/modules/site_apt/manifests/dist_upgrade.pp @@ -11,7 +11,7 @@ class site_apt::dist_upgrade { command => "/usr/bin/apt-get -q -y -o 'DPkg::Options::=--force-confold' dist-upgrade", refreshonly => false, timeout => 1200, - require => Exec['refresh_apt'] + require => Exec['apt_updated'] } } } diff --git a/puppet/modules/site_apt/manifests/init.pp b/puppet/modules/site_apt/manifests/init.pp index fea4b8e7..04b1ce69 100644 --- a/puppet/modules/site_apt/manifests/init.pp +++ b/puppet/modules/site_apt/manifests/init.pp @@ -55,7 +55,7 @@ class site_apt { # All packages should be installed _after_ refresh_apt is called, # which does an apt-get update. - Exec['refresh_apt'] -> + Exec['apt_updated'] -> Package <||> } diff --git a/puppet/modules/site_config/manifests/default.pp b/puppet/modules/site_config/manifests/default.pp index 96f06e6c..b5d0f32d 100644 --- a/puppet/modules/site_config/manifests/default.pp +++ b/puppet/modules/site_config/manifests/default.pp @@ -16,7 +16,7 @@ class site_config::default { # 'apt-get update' is executed by 'site_config::slow', it should be done # before any packages are installed. - Package { require => Exec['refresh_apt'] } + Package { require => Exec['apt_updated'] } # default class, used by all hosts diff --git a/puppet/modules/site_config/manifests/remove/jessie.pp b/puppet/modules/site_config/manifests/remove/jessie.pp index cbeaae05..c813e46d 100644 --- a/puppet/modules/site_config/manifests/remove/jessie.pp +++ b/puppet/modules/site_config/manifests/remove/jessie.pp @@ -3,7 +3,7 @@ class site_config::remove::jessie { tidy { '/etc/apt/preferences.d/rsyslog_anon_depends': - notify => Exec['refresh_apt']; + notify => Exec['apt_updated']; } } -- cgit v1.2.3 From 9278d76636fcffa624528b1fb11a7197f9f6b27c Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 1 Feb 2016 17:35:16 +0100 Subject: [refactor] Dont duplicate Package resource override `site_apt` aready ensures for installing packages after Exec[update_apt] is run, so we don't need to duplicate this in `site_config::default.pp`. --- puppet/modules/site_apt/manifests/init.pp | 8 +++----- puppet/modules/site_config/manifests/default.pp | 12 ------------ 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/puppet/modules/site_apt/manifests/init.pp b/puppet/modules/site_apt/manifests/init.pp index 04b1ce69..447e1781 100644 --- a/puppet/modules/site_apt/manifests/init.pp +++ b/puppet/modules/site_apt/manifests/init.pp @@ -52,10 +52,8 @@ class site_apt { pin => 'origin "deb.leap.se"' } -# All packages should be installed _after_ refresh_apt is called, -# which does an apt-get update. - - Exec['apt_updated'] -> - Package <||> + # All packages should be installed after 'update_apt' is called, + # which does an 'apt-get update'. + Exec['update_apt'] -> Package <||> } diff --git a/puppet/modules/site_config/manifests/default.pp b/puppet/modules/site_config/manifests/default.pp index b5d0f32d..256de1a1 100644 --- a/puppet/modules/site_config/manifests/default.pp +++ b/puppet/modules/site_config/manifests/default.pp @@ -7,18 +7,6 @@ class site_config::default { include site_config::params include site_config::setup - # By default, the class 'site_config::slow' is included in site.pp. - # It basically does an 'apt-get update' and 'apt-get dist-upgrade'. - # This class can be excluded by using 'leap deploy --fast', - # see https://leap.se/en/docs/platform/details/under-the-hood#tags for more - # details. - # The following Package resource override makes sure that *if* an - # 'apt-get update' is executed by 'site_config::slow', it should be done - # before any packages are installed. - - Package { require => Exec['apt_updated'] } - - # default class, used by all hosts include lsb, git -- cgit v1.2.3