2013-04-10 16 views
5

Amazon Linux 2012.09'da Puppet 3 kullanıyorum, manifestolarımızdan biri bazı dizinleri ayarlayıp yeniden oluşturuyor. Görevlerden biri, klasör sahibini ve grubunu başka bir kullanıcıya yeniden çevirmektir - ancak, bu işlemin tamamlanması 60 saniyeyi alır ve dizinde neredeyse hiçbir şey yoktur - chown myuser: terminalde myuser/var/lib/jenkins bir saniyeden az al.Kukla 3 dosyası yavaş yavaş

Sorum şu: Kukla'da dizin sahipliğini tekrarlı olarak değiştirmek için daha iyi/daha hızlı bir yol var mı?

Teşekkür

file {'/var/lib/jenkins': 
    ensure => 'directory', 
    owner => myuser, 
    group => myuser, 
    recurse => true, 
    require => Package['jenkins'], 
} 

cevap

4

Ben de bu yavaşlık görmek ve bunun nedeni Kukla dosyaları bir sürü beri zaman alır ki, doğru sahibi izinleri sahip olması için tek tek /var/lib/jenkins altındaki her dosyayı kontrol etmek gibi görünmektedir $JENKINS_HOME altında.

yerine üst düzey dizin istenen kullanıcıya ait olmayan geldiğinde (exec ile) basit chown -R komutu çalıştırarak bizim Jenkins sunucuda etrafında çalıştı:

define modify_owner() { 
    exec { "modify_owner_${title}" : 
    command => "/bin/chown -R ${user}:${user} '${title}'", 
    onlyif => "/usr/bin/stat -c %U '${title}' | grep '^${default_user}$'" 
    } 
} 

modify_owner { ['/var/lib/jenkins', '/var/log/jenkins', '/var/cache/jenkins']: } 

$user/$user sahibidir/group combo I , bu dizinlere ait olmak üzere bu dizinleri ister. Bu benim Puppet zamanlarımı normal seviyelere geri getirdi.

(Not. Ben stat -c %U kullanılan ancak tam biçimlendirme seçenekleri işletim sisteminize bağlı olarak değişiklikler yapmanızı gerektirecek Bu komut sahibinin metinsel adını basılı ve Linux üzerinde benim için çalıştı.)