簡體   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