[英]Puppet manifest - 'sudo' commands?
我在Vagrant有一个CentOS基础盒,我正站起来用木偶清单。 到目前为止,这是清单中的内容:
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,
}
但是,我强烈建议您不要使用任何类型的非条件exec
与puppet。 这将在每次木偶运行时运行。 正如福雷斯特已经说过的那样 ,这不是傀儡的设计目标。 我不会用木偶的yum update
,我的exec
总是有creates
, onlyif
, refreshonly
或unless
以确保它们仅在需要时运行。
所以Puppet并不真正意味着执行像yum更新这样的任务。 它是一个配置管理工具,而不是完全取代这类任务的东西。 此外,你遇到了很多问题。 如果Puppet被守护怎么办? 这会对我们的生产环境产生负面影响吗? 如果用户意外地运行Puppet并且它更新了破坏我们脚本的包(JDK,MySQL,PHP等),会发生什么。 据我所知,没有解决方案,因为它并不是真正的问题。 关于Serverfault的 Scott Pack在类似问题上提供了非常具有描述性的答案。
更新“path”属性对我有帮助。 / usr / bin / path中提供了sudo和apt-get命令
exec { 'autoclean':
command => 'apt-get autoclean',
path => '/usr/local/bin/:/bin/:/usr/bin/',
cwd => '/home',
}
我的木偶版本:5.5.1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.