[英]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.