我正在学习 puppet,并且试图更新 bash(猜出原因也没有奖品)。
这是在我的 site.pp 中
file { "/etc/apt/sources.list.d/shellshock.list":
source => "puppet:///files/shellshock.list",
owner => "root",
group => "root",
mode => "0644",
ensure => present,
}
->
exec { "instantRepoUpdate":
command => "/usr/bin/aptitude update",
refreshonly => true,
}
->
package {"bash": ensure => latest, }
从我在这里读到的内容来看https://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html 这应该翻译为:
安装/etc/apt/sources.list.d/shellshock.list
,然后运行 aptitude update,然后确保 bash 是最新版本
确实如此,但只能在代理运行两次后才能完成。我希望它在一次运行中按顺序执行所有三个操作。
更新:我尝试将“require => Exec[.., require => File[...”添加到 exec 和包资源中,得到了相同的结果。
答案1
您设置了refreshonly => true
,因此您需要使用通知箭头(~>
)。