2014-07-16 3 views
5

요리사의 powershell_script 공급자를 사용하면 동일한 파일에 정의 된 코드 대신 요리사 서버에 저장된 파일을 어떻게 참조 할 수 있습니까? 기본적으로 Chef 클라이언트에서 서버에있는 .ps1을 어떻게 호출 할 수 있습니까?Chef Powershell 파일에서 실행

답변

6

powershell_script에서 your execution policy allows it까지 직접 unsigned powershell 스크립트를 호출 할 수 있습니다.이 스크립트는 Chef가 기본적으로 수행합니다.

powershell_script "run some script" do 
    code "c:/something/script.ps1" 
end 

너무 스크립트를 배포하는 요리사하려는 경우, 당신은 cookbook_file와 요리 책의 /files 섹션에서 그것을 할 수 있습니다.

+0

아, 알겠습니다. 나는 실제 코드에 대해서만 'code'를 사용하는 모든 예제들에 대해 다소 혼란 스러웠다.하지만 필자는 powershell 명령을 실행하여 스크립트 이름이 실제로 작동한다는 것을 추측한다. 하지만이 스크립트를 사용하여 스크립트를 먼저 설치하고 나중에 수동으로 정리할 수 있습니다. 별로 번거롭지는 않지만 원격 스크립트를 실행하고 요리사에게 임시 생성을 처리하게하는 것이 좋을 것입니다. – Derongan

+2

DSL은 루비 코드 일뿐입니다. 어디에서든지 클라이언트로'code' 문자열을 가져올 수 있습니다. 로컬 요리 책 캐시에서'File.read ("script.ps1")'할 수 있습니다. Net :: HTTP.get ('example.com', 'script.ps1')' – Matt

+0

나는 루비에 익숙하지 않지만 기본적으로 정확하게 원하는 것처럼 보인다. 감사! – Derongan

0

여러 줄의 코드의 경우 powershell_script 리소스의 코드 매개 변수에서 각 줄의 끝에 \ n을 추가하지 마십시오.

관련 문제