Vagrant 始终在每个配置上重新运行puppet exec资源

Vagrant 始终在每个配置上重新运行puppet exec资源,vagrant,puppet,Vagrant,Puppet,我有一个puppet脚本中的exec资源,应该在每个配置上执行,但它似乎不起作用。我可能有配置问题或逻辑执行顺序问题,但我不确定它在哪里 exec { 'get-ec2-hosts-run': environment => "HOME=/home/${common_username}", command => "php /home/${common_username}/get-ec2-hosts.php", refresh => "php /home

我有一个puppet脚本中的exec资源,应该在每个配置上执行,但它似乎不起作用。我可能有配置问题或逻辑执行顺序问题,但我不确定它在哪里

exec { 'get-ec2-hosts-run':
  environment => "HOME=/home/${common_username}",
  command     => "php /home/${common_username}/get-ec2-hosts.php",
  refresh     => "php /home/${common_username}/get-ec2-hosts.php",
  require     => [
    Package["php7.1"],
    File_line['export aws access key'],
    File_line['export aws secret key'],
  ],
  user        => "${common_username}"
}
因此,我使用该代码实际上总是在每个配置上运行甚至刷新名为get-ec2-hosts.php的脚本,该脚本只描述实例并为我编写一个~/.ssh/config文件。实际上,这是我们架构中非常需要的文件

如果我手动运行这个文件,它可以正常工作并创建我的配置文件,但是从任何配置步骤来看,它似乎都不会运行,尽管我在puppet Provisioning输出中得到一行消息说它做到了

==> local_dev: Notice: /Stage[main]/Main/Exec[php71-add-tools]/returns: executed successfully
==> local_dev: Notice: /Stage[main]/Main/Exec[php71-add-repo]/returns: executed successfully
==> local_dev: Notice: /Stage[main]/Main/Exec[php71-update-sources]/returns: executed successfully
==> local_dev: Notice: /Stage[main]/Main/Exec[get-ec2-hosts-run]/returns: executed successfully
==> local_dev: Notice: /Stage[main]/Main/Exec[get-ec2-hosts-copy]/returns: executed successfully
==> local_dev: Notice: Finished catalog run in 6.57 seconds
所以我想知道我做错了什么

目标:

  • 在每个配置上运行get-ec2-hosts.php(vagrant配置、vagrant up--provision或vagrant reload--provision)
  • 条件:

  • 必须在安装PHP7.1后运行
  • 必须在“公共_用户名”中安装aws凭据后运行
  • 必须以该用户的身份运行才能毫无问题地创建文件

  • 你能帮我理解这一点吗?

    exec
    资源中设置
    logoutput=>true
    ,看看应用该资源时发生了什么。谢谢你的提示,很遗憾,我不得不推迟,因为我们正在进行RC过程。完成后,我会回到这里,尝试你的建议