我在 Vagrant 中有一个 CentOS base box,我正在用一个 puppet manifest 站起来。以下是目前 list 中的内容:
class base {
exec { "sudocmd":
path => ["/usr/bin/","/usr/sbin/","/bin"],
command => "sudo yum update -y",
}
package { "man":
ensure => present,
}
package { "bind":
ensure => present,
}
package { "bind-utils":
ensure => present,
}
}
include base
但是当我说 vagrant up
时,我得到一个错误,sudocmd yum update
以 1 退出。我在网上看过,但我没有找到了解决方案。有帮助吗?
========编辑========= 我阅读了答案并同意 - 谢谢大家。我只是在开发箱上使用它来搞乱,在我开始使用它之前我需要它是最新的。
最佳答案
使用puppet,你应该不需要使用sudo
,直接运行yum
命令即可。通常命令默认以 root 身份运行,但您可以指定用户。
exec { "sudocmd":
path => ["/usr/bin/","/usr/sbin/","/bin"],
command => "yum update -y",
user => root,
}
但是,我强烈建议您不要对 puppet 使用任何类型的非条件 exec
。每次 puppet 运行时都会运行。作为Forrest already said ,这不是 puppet 的设计目的。我不会将 puppet 用于 yum update
,我的 exec
总是有 creates
、onlyif
、refreshonly
或 unless
以确保它们仅在需要时运行。
关于ruby - Puppet list - 'sudo' 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14088651/