为什么 Puppet 需要运行两次才能更新 bash?

为什么 Puppet 需要运行两次才能更新 bash?

我正在学习 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,因此您需要使用通知箭头(~>)。

相关内容