2012-12-30 27 views
6

Vagrant'ta bir kukla manifestosuyla ayakta durduğum bir CentOS taban kutum var.Kukla manifestosu - 'sudo' komutları?

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 

Ama vagrant up deyince, yum update web'de baktım bir 1 ile çıkıldı sudocmd bir hata alıyorum, ama bir çözüm için bulamadım: Burada apaçık bugüne kadar olan budur bu henüz. Herhangi bir yardım?

============================= Cevapları okudum ve katılıyorum - teşekkürler çocuklar. Sadece bunu çözmek için dev bir kutuda kullanıyorum ve üzerinde çalışmaya başlamadan önce güncel olmak için ihtiyacım vardı.

cevap

3

Bu nedenle Puppet gerçekten bir yum güncelleme gibi görevleri gerçekleştirmeyi amaçlamıyor. Bir yapılandırma yönetim aracıdır, bu tür bir görevi tamamen yerine getiren bir şey değildir. Buna ek olarak, bu konuda birçok sorunla karşılaşırsınız. Ya kukla perdeli ise? Bu üretim ortamımızı olumsuz etkileyecek mi? Bir kullanıcı yanlışlıkla Puppet'i çalıştırırsa ve komut dosyalarımızı (JDK, MySQL, PHP, vb.) Kesen bir paketi güncellerse ne olur? Bildiğim kadarıyla bunun bir çözümü yok çünkü gerçekten bir sorun olarak görülmemektedir. Scott Pack Serverfault üzerinde benzer bir soruya çok açıklayıcı bir cevap verdi.

11

Kukla ile sudo'u kullanmanız gerekmemelidir, sadece yum komutunu çalıştırın. Normalde komutlar varsayılan olarak root olarak çalışır, ancak hangi kullanıcıyı belirtebilirsiniz.

exec { "sudocmd": 
    path => ["/usr/bin/","/usr/sbin/","/bin"], 
    command => "yum update -y", 
    user => root, 
} 

Ancak, ben şiddetle kukla koşulsuz exec her türlü kullanmamanızı tavsiye ederiz. Bu kukla her çalıştığında çalışır. Forrest already said olarak kukla için tasarlanan şey bu değil. yum update için kukla kullanmazdım ve exec s her zaman yalnızca ihtiyaç olduğunda çalıştıklarından emin olmak için creates, onlyif, refreshonly veya unless var.