2013-04-10 2 views
5

아마존 Linux 2012.09에서 퍼핏 3을 사용하고 있습니다. 내 매니페스트 중 하나가 설정되고 일부 디렉토리가 재구성됩니다. 하나의 작업 중 하나는 폴더 소유자와 그룹 recursivelt를 다른 사용자로 변경하는 것입니다. 그러나이 작업은 완료하는 데 60 초 이상 걸리고 디렉토리에 거의 아무것도 없습니다. chuser myuser : myuser/var/lib/jenkins 1 초도 안 걸린다.퍼핏 3 파일 반복적으로 매우 느림

제 질문은 : Puppet에서 디렉토리 소유권을 재귀 적으로 변경하는 더 빠르고 쉬운 방법이 있습니까?

감사

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

답변

4

나도이 느림을보고, 그것으로 인해 꼭두각시 많은 파일이 이후 시간이 소요되는 올바른 소유자 권한이 보장하기 위해 개별적으로 /var/lib/jenkins 아래의 각 파일을 확인을 것으로 보인다 $JENKINS_HOME 이하.

내가 대신 최상위 디렉토리를 원하는 사용자가 소유하지 않은 때마다 (exec과) 간단한 chown -R 명령을 실행하여 우리 젠킨스 서버에 주위에 일이 :

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는 소유자/그룹 콤보 I 이 디렉토리를 소유하고 싶어합니다. 이것은 Puppet 시대를 정상 수준으로 되돌려 놓았습니다.

(가 :. 내가 stat -c %U을 사용하지만 정확한 포맷 옵션은 OS에 따라 조정할 필요가 있습니다이 명령은 소유자의 텍스트 이름을 인쇄 및 Linux에서 날 위해 일했습니다.)