2013-10-07 3 views
0

CFENGINE3.5로 설정을 시도하는 동안 문제가 발생합니다. 소스에서 일부 패키지를 설치하는 정책을 만들었습니다. url에서 타르 볼을 다운로드 한 다음 압축을 풀고 추가로 파기합니다. make와 make install을 사용하면 "/ etc"위치에 보관되는 타르 공을 다운로드하는 동안을 제외하고는 모두 잘 작동합니다. cfengine이/tmp에이 파일을 넣길 바랍니다.CFEngine3 임시 다운로드 파일 위치 사용자 정의

임시로 다운로드 한 모든 파일을 "/ etc"대신 "/ tmp"에 보관하도록 cfengine의이 기본 동작을 사용자 정의 할 수있는 방법이 있습니까? 사전에

bundle agent install 
{ 
    vars: 
     "packages" slist => { 
          "Algorithm-Diff-1.1902", 
          "Apache-DB-0.13", 
          "Apache-DBI-1.06", 
          "Apache-Session-1.83", 
          "Apache-SessionX-2.01", 
          "AppConfig-1.65", 
          "Archive-Tar-1.32", 
     }; 

    commands: 
     "/usr/bin/wget http://10.X.X.X/downloads/perl-modules/$(packages).tar.gz; 
/usr/bin/gunzip $(packages).tar.gz; 
tar -xf $(packages).tar; 
cd $(packages); 
/usr/bin/perl Makefile.PL; 
/usr/bin/make; 
/usr/bin/make install;" 
     contain => standard, 
     classes => satisfied(canonify("$(packages)-installed")); 
} 

body contain standard 
{ 
     useshell => "true"; 
     exec_owner => "root"; 
} 

감사 : 여기

는 정책 조각입니다.

답변

1

이 같은 명령이 contain 몸에 실행해야하는 디렉토리를 추가 할 수 있습니다

body contain standard 
{ 
    useshell => "true"; 
    exec_owner => "root"; 
    chdir => "/tmp"; 
} 

표준 라이브러리에서 몇 contain기구 (lib 디렉토리/3.5/명령은 이미 거기에 유의하시기 바랍니다 .cf), 아마도 그 중 하나를 사용할 수 있으므로 직접 작성하지 않아도됩니다. CFEngine은 이미 루트로 실행되므로, exec_owner => "root"은 꼭 필요한 것은 아닙니다.

+0

완벽한 Mr Zamboni :) – Yogi