Page MenuHomePhabricator

Puppet Proposal to remove require_package
Closed, ResolvedPublic

Description

The require_packages function call is used to declare one or more packages a dependency for the current scope. at a high level the function does the following

With a starting manifest like:

class {'foobar':
  require_package('foo', 'bar')
  file {'/etc/foobar.conf':
    ensure => present,
  }
   service {'foobar':
    ensure => running,
    require => File['/etc/foobar.conf'],
  }
}
class {'foobar': }

we end up, in the compiled catalogue, with something a bit more like this:

class {'packages::foo':
  package{'foo':
    ensure => 'present'
  }
}
class {'packages::bar':
  package{'bar':
    ensure => 'present'
  }
}
class {'foobar':
  file {'/etc/foobar.conf':
    ensure => present,
  }
   service {'foobar':
    ensure => running,
    require => File['/etc/foobar.conf'],
  }
}
class {'packages::foo':}
class {'packages::bar':}
class {'foobar': 
  require => Class['packages::foo', 'packages::bar'],
}

The other benefit of this function is that it also handles duplicate resources declarations, similar to the puppetlabs-stdlib ensure_packages function.

the require_packages function predates my time here however the initial commit message gives a good explanation for its intention and benefits over ensure_packages:

It's similar to ensure_packages(), but it's cleaner and faster. It takes a
single package name as an argument and it creates a virtual class that wraps it
and makes it a requirement for the current scope. We can use this to avoid
duplicate def'n errors for packages that may legitimately be specified in the
software stacks of multiple modules / roles.

However I'm not sure if theses claims are still valid. Specifically when compared to ensure_packages:

  • ensure_packages can now also take a single string or array of strings.
  • The cleaner point is subjective however the ensure_packages function in stdlib has received some refactoring since require_package was initially merged
  • I have not tested the faster claim

The thing that ensure_packages doesn't have is the ability to "create a virtual class that wraps [the package] and makes it a requirement for the current scope". Im ensure of the specific problem this was trying to resolve however in the early days of puppet dependency mapping was a bit of a pain and not necessarily intuitive as such dependencies where often missed. Puppet has improved this behavior somewhat by honoring manifest order when applying resources which reduces the need to explicitly define most dependencies and for complex dependencies that do need to be defined I believe it is clearer to explicitly define them. I also feel that this function is rather un-standard (i.e. dynamic resource creation and catalogue manipulation) and causes unexpected results when looking at the raw catalogue.

As such and assuming i havn;t missed something, i propose working towards dropping require_packages from wmflib and migrating to ensure_packages.

Taking the foobar class a migration to ensure_packages would look as follows

class {'foobar':
  $packages = ['foo', 'bar']
  ensure_packages($packages)
  file {'/etc/foobar.conf':
    ensure => present,
    require => Package[$packages]
  }
   service {'foobar':
    ensure => running,
    require => File[/etc/foobar.conf'],
  }
}
class {'foobar': }

tagging @Joe/@akosiaris to correct anything i may have got wrong or what i may have missed

Details

Other Assignee
jbond
SubjectRepoBranchLines +/-
operations/puppetproduction+937 -905
operations/puppetproduction+2 -4
operations/puppetproduction+0 -0
operations/puppetproduction+1 -90
operations/puppetproduction+227 -242
operations/puppetproduction+2 -2
operations/puppetproduction+4 -4
operations/puppetproduction+7 -7
operations/puppetproduction+5 -0
operations/puppetproduction+3 -1
operations/puppetproduction+10 -11
operations/puppetproduction+2 -4
operations/puppetproduction+1 -1
operations/puppetproduction+4 -4
operations/puppetproduction+2 -2
operations/puppetproduction+2 -2
operations/puppetproduction+2 -2
operations/puppetproduction+4 -4
operations/puppetproduction+3 -4
operations/puppetproduction+5 -3
operations/puppetproduction+82 -13
operations/puppetproduction+2 -2
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+49 -99
operations/puppetproduction+0 -435
operations/puppetproduction+2 -4
operations/puppetproduction+4 -4
operations/puppetproduction+5 -5
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+9 -2
operations/puppetproduction+9 -11
operations/puppetproduction+6 -15
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+3 -2
operations/puppetproduction+3 -3
operations/puppetproduction+2 -2
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+1 -1
operations/puppetproduction+2 -2
operations/puppetproduction+2 -2
operations/puppetproduction+2 -7
operations/puppetproduction+2 -2
operations/puppetproduction+1 -1
operations/puppetproduction+1 -2
operations/puppetproduction+1 -1
operations/puppetproduction+2 -2
operations/puppetproduction+14 -31
operations/puppetproduction+19 -14
operations/puppetproduction+1 -1
operations/puppetproduction+3 -3
operations/puppetproduction+3 -3
operations/puppetproduction+26 -16
operations/puppetproduction+15 -17
operations/puppetproduction+3 -3
operations/puppetproduction+3 -3
operations/puppetproduction+110 -135
operations/puppetproduction+10 -13
operations/puppetproduction+7 -5
operations/puppetproduction+18 -10
operations/puppetproduction+16 -16
operations/puppetproduction+10 -17
operations/puppetproduction+2 -2
operations/puppetproduction+4 -6
operations/puppetproduction+1 -1
operations/puppetproduction+4 -7
operations/puppetproduction+6 -35
operations/puppetproduction+14 -13
operations/puppetproduction+9 -9
operations/puppetproduction+14 -16
operations/puppetproduction+3 -3
operations/puppetproduction+8 -12
operations/puppetproduction+9 -10
operations/puppetproduction+5 -5
operations/puppetproduction+2 -2
operations/puppetproduction+5 -6
operations/puppetproduction+9 -10
operations/puppetproduction+4 -4
operations/puppetproduction+6 -6
operations/puppetproduction+16 -16
operations/puppetproduction+5 -5
operations/puppetproduction+19 -10
operations/puppetproduction+3 -3
operations/puppetproduction+10 -10
operations/puppetproduction+8 -8
operations/puppetproduction+2 -2
operations/puppetproduction+1 -1
operations/puppetproduction+12 -10
operations/puppetproduction+16 -15
operations/puppetproduction+5 -5
operations/puppetproduction+3 -3
operations/puppetproduction+7 -7
operations/puppetproduction+2 -1
operations/puppetproduction+4 -4
operations/puppetproduction+2 -2
operations/puppetproduction+21 -26
operations/puppetproduction+15 -17
operations/puppetproduction+4 -4
operations/puppetproduction+2 -1
operations/puppetproduction+5 -5
operations/puppetproduction+1 -1
operations/puppetproduction+5 -5
operations/puppetproduction+8 -8
operations/puppetproduction+8 -8
operations/puppetproduction+6 -6
operations/puppetproduction+14 -12
operations/puppetproduction+3 -3
operations/puppetproduction+5 -5
operations/puppetproduction+1 -1
operations/puppetproduction+2 -2
operations/puppetproduction+3 -4
operations/puppetproduction+16 -10
operations/puppetproduction+13 -14
operations/puppetproduction+3 -3
operations/puppetproduction+7 -5
operations/puppetproduction+1 -1
operations/puppetproduction+6 -5
operations/puppetproduction+2 -2
operations/puppetproduction+5 -6
operations/puppetproduction+6 -6
operations/puppetproduction+4 -4
operations/puppetproduction+13 -11
operations/puppetproduction+18 -60
operations/puppetproduction+2 -2
operations/puppetproduction+17 -23
operations/puppetproduction+15 -21
operations/puppetproduction+12 -9
operations/puppetproduction+1 -1
operations/puppetproduction+2 -2
operations/puppetproduction+4 -5
operations/puppetproduction+3 -3
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change 641858 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] tcpircbot: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/641858

Change 641857 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] docker_registry_ha: require_package->ensure_packages

https://gerrit.wikimedia.org/r/641857

Change 641856 merged by Dzahn:
[operations/puppet@production] smokeping: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/641856

Change 641857 merged by Dzahn:
[operations/puppet@production] docker_registry_ha: require_package->ensure_packages

https://gerrit.wikimedia.org/r/641857

Change 641858 merged by Dzahn:
[operations/puppet@production] tcpircbot: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/641858

Change 644350 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] deployment::server: buster support, use mariadb-client, not mysql-client

https://gerrit.wikimedia.org/r/644350

Change 644350 merged by Dzahn:
[operations/puppet@production] deployment::server: buster support, use default-mysql-client package

https://gerrit.wikimedia.org/r/644350

Change 645442 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] deployment_server: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/645442

Change 645443 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] mw_rc_irc: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/645443

Change 645444 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] ipmi: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/645444

Change 645445 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] gerrit: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/645445

Change 645446 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] apt::repository: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/645446

Change 645443 merged by Dzahn:
[operations/puppet@production] mw_rc_irc: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/645443

Change 645442 merged by Dzahn:
[operations/puppet@production] deployment_server: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/645442

Change 645444 merged by Dzahn:
[operations/puppet@production] ipmi: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/645444

Change 645445 merged by Dzahn:
[operations/puppet@production] gerrit: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/645445

Change 645446 merged by Dzahn:
[operations/puppet@production] apt::repository: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/645446

Change 647031 had a related patch set uploaded (by Dave Pifke; owner: Dave Pifke):
[operations/puppet@production] webperf: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/647031

Change 647737 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] poolcounter: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/647737

Change 647738 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] otrs: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/647738

Change 647739 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] wikimania_scholarships: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/647739

Change 647738 merged by Dzahn:
[operations/puppet@production] otrs: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/647738

Change 647739 merged by Dzahn:
[operations/puppet@production] wikimania_scholarships: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/647739

Change 647737 merged by Dzahn:
[operations/puppet@production] poolcounter: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/647737

Change 647031 merged by Dzahn:
[operations/puppet@production] webperf: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/647031

Change 648358 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] puppetmaster: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/648358

Change 648359 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] icinga: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/648359

Change 648359 merged by Dzahn:
[operations/puppet@production] icinga: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/648359

Change 648358 merged by Dzahn:
[operations/puppet@production] puppetmaster: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/648358

Change 654231 had a related patch set uploaded (by Muehlenhoff; owner: Muehlenhoff):
[operations/puppet@production] mw maintenance: Install php-readline from component/php72

https://gerrit.wikimedia.org/r/654231

Change 654231 merged by Dzahn:
[operations/puppet@production] mw maintenance: Install php-readline from component/php72

https://gerrit.wikimedia.org/r/654231

Change 654675 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] snapshot: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654675

Change 654676 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] netbox: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654676

Change 654677 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] homer: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654677

Change 654681 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] iegreview: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654681

Change 654681 merged by Dzahn:
[operations/puppet@production] iegreview: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654681

Change 654677 merged by Dzahn:
[operations/puppet@production] homer: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654677

Change 654676 merged by Dzahn:
[operations/puppet@production] netbox: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654676

Change 654911 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] dumps: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654911

Change 654675 merged by Dzahn:
[operations/puppet@production] snapshot: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654675

Change 654912 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] sentry: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654912

Change 654912 merged by Dzahn:
[operations/puppet@production] sentry: delete module and hiera keys

https://gerrit.wikimedia.org/r/654912

Change 654911 merged by Dzahn:
[operations/puppet@production] dumps: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/654911

Change 655182 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[operations/puppet@production] zuul: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655182

Change 655183 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[operations/puppet@production] visualdiff: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655183

Change 655184 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[operations/puppet@production] docker_pkg: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655184

Change 639826 merged by Jbond:
[operations/puppet@production] P:toolforge: migrate to ensure_packages

https://gerrit.wikimedia.org/r/639826

Change 655519 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] icinga::elastic: require_package->ensure_packages

https://gerrit.wikimedia.org/r/655519

Change 655520 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] docker: require_package->ensure_packages

https://gerrit.wikimedia.org/r/655520

Change 655522 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] bird: require_package->ensure_packages

https://gerrit.wikimedia.org/r/655522

Change 655183 merged by Legoktm:
[operations/puppet@production] visualdiff: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655183

Change 655184 merged by Legoktm:
[operations/puppet@production] docker_pkg: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655184

Change 655182 merged by Legoktm:
[operations/puppet@production] zuul: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655182

Change 655522 merged by Dzahn:
[operations/puppet@production] bird: require_package->ensure_packages

https://gerrit.wikimedia.org/r/655522

Change 655794 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[operations/puppet@production] sbuild: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655794

Change 655795 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[operations/puppet@production] scap: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655795

Change 655796 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[operations/puppet@production] shiny_server: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655796

Change 654419 had a related patch set uploaded (by David Caro; owner: David Caro):
[operations/puppet@production] cloud.encapi: enable ssl nginx vhost

https://gerrit.wikimedia.org/r/654419

Change 654419 merged by David Caro:
[operations/puppet@production] cloud.encapi: enable ssl nginx vhost

https://gerrit.wikimedia.org/r/654419

Change 655794 merged by Legoktm:
[operations/puppet@production] sbuild: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655794

Change 655519 merged by Dzahn:
[operations/puppet@production] icinga::elastic: require_package->ensure_packages

https://gerrit.wikimedia.org/r/655519

Change 655520 merged by Dzahn:
[operations/puppet@production] docker: require_package->ensure_packages

https://gerrit.wikimedia.org/r/655520

Change 657903 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[operations/puppet@production] threedtopng: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/657903

Change 655795 merged by Legoktm:
[operations/puppet@production] scap: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/655795

Change 657904 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[operations/puppet@production] udp2log: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/657904

Change 657916 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[operations/puppet@production] snapshot: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/657916

Change 657917 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[operations/puppet@production] superset: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/657917

Change 657916 merged by Legoktm:
[operations/puppet@production] snapshot: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/657916

Change 657917 merged by Legoktm:
[operations/puppet@production] superset: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/657917

Change 657903 merged by Legoktm:
[operations/puppet@production] threedtopng: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/657903

Change 657904 merged by Legoktm:
[operations/puppet@production] udp2log: Switch require_package -> ensure_packages

https://gerrit.wikimedia.org/r/657904

Change 659405 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] nagios_common::commands: require_package -> ensure_packages, simplify

https://gerrit.wikimedia.org/r/659405

Change 659405 merged by Dzahn:
[operations/puppet@production] nagios_common::commands: require_package -> ensure_packages, simplify

https://gerrit.wikimedia.org/r/659405

Change 683741 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] rsync::quickdatacopy: ensure a 'passive' host gets an rsync client

https://gerrit.wikimedia.org/r/683741

Change 683741 merged by Dzahn:

[operations/puppet@production] rsync::quickdatacopy: ensure a destination host gets an rsync client

https://gerrit.wikimedia.org/r/683741

Change 714079 had a related patch set uploaded (by Jcrespo; author: Jcrespo):

[operations/puppet@production] puppet: Document deprecation of require_packages() on README

https://gerrit.wikimedia.org/r/714079

Change 714079 merged by Jcrespo:

[operations/puppet@production] puppet: Document deprecation of require_packages() on README

https://gerrit.wikimedia.org/r/714079

Change 724838 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] thanos: replace require_package with ensure_packages

https://gerrit.wikimedia.org/r/724838

Change 724839 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] alertmanager: replace require_package with ensure_packages

https://gerrit.wikimedia.org/r/724839

Change 724841 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] debdeploy/base: replace require_package with ensure_packages

https://gerrit.wikimedia.org/r/724841

Change 724838 merged by Dzahn:

[operations/puppet@production] thanos: replace require_package with ensure_packages

https://gerrit.wikimedia.org/r/724838

Change 724839 merged by Dzahn:

[operations/puppet@production] alertmanager: replace require_package with ensure_packages

https://gerrit.wikimedia.org/r/724839

Change 724841 merged by Dzahn:

[operations/puppet@production] debdeploy/base: replace require_package with ensure_packages

https://gerrit.wikimedia.org/r/724841

Change 726726 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] mcrouter: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/726726

Change 726728 had a related patch set uploaded (by Dzahn; author: Dzahn):

[operations/puppet@production] statistics::web: require_package -> ensure_packages

https://gerrit.wikimedia.org/r/726728

Change 726896 had a related patch set uploaded (by Jbond; author: John Bond):

[operations/puppet@production] require_packages: update all uses of require_packages

https://gerrit.wikimedia.org/r/726896

Change 726896 merged by Jbond:

[operations/puppet@production] require_packages: update all uses of require_packages

https://gerrit.wikimedia.org/r/726896

Change 727137 had a related patch set uploaded (by Jbond; author: John Bond):

[operations/puppet@production] wmflib: remove require_package

https://gerrit.wikimedia.org/r/727137

Change 727137 merged by Jbond:

[operations/puppet@production] wmflib: remove require_package

https://gerrit.wikimedia.org/r/727137

jbond assigned this task to Dzahn.
jbond updated Other Assignee, added: jbond.

I was bold and have now removed require_packages everywhere and dropped it from the repo. The reason i did this now is two fold

  1. it seemed that so far we have had no issues with this change and as such after pcc test i felt it was faily safe
  2. the most recent version of stdlib changed the ensure parameter for ensure_packages from present to installed which conflicted with require_packages

resolving

Change 726728 abandoned by Dzahn:

[operations/puppet@production] statistics::web: require_package -> ensure_packages

Reason:

already done by John

https://gerrit.wikimedia.org/r/726728

Change 726726 abandoned by Dzahn:

[operations/puppet@production] mcrouter: require_package -> ensure_packages

Reason:

already done by jbond

https://gerrit.wikimedia.org/r/726726

Change 640688 abandoned by Muehlenhoff:

[operations/puppet@production] puppet: migrate from require_package to ensure_packages

Reason:

require_package is gone

https://gerrit.wikimedia.org/r/640688