繁体   English   中英

木偶清单 - 'sudo'命令?

[英]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总是有createsonlyifrefreshonlyunless以确保它们仅在需要时运行。

所以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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM