Run `apt-get update` before installing other packages with Puppet
Since Puppet 2.6.0 a new feature "relationship syntax" was introduced.
An example in Puppet 2.6.0 and above would look like this:
exec { "apt-update":
command => "/usr/bin/apt-get update"
}
Exec["apt-update"] -> Package <| |>
Every time a package command is executed, the dependency (in our case 'apt-update') will be triggered fist. You can even define longer chains.
You need to specify the dependency relationships. The easiest/cleanest approach is to use the require parameter which is available for all resource types.
package { "zend-server-ce-php-5.2":
ensure => latest,
require => Exec['apt-get update'],
}
etc..