꼭두각시에서 쉘 스크립트를 어떻게 실행합니까?


8

내가 설치할 필요 npm에 의해 수행되는 curl http://npmjs.org/install.sh | sh및 사용하여 새로운 것을 puppet, 나는이 작업을 수행 할 방법에 혼란 비트입니다.

대상 package {}을 호출하는 항목을 작성하는 것에 대해 잘 알고 exec있지만 npm소스에서 설치 하면 자르지 않습니다.

나는 풀 을 만들 npm때마다 분명히 빌드하고 싶지 않기 puppet때문에 어쨌든 설치되어 있는지 여부를 확인해야하므로 exec {}혼자 만드는 것만으로는 충분하지 않습니다.

어떡해?

답변:


15

같은 것

exec { "install npm":
    command => "/usr/bin/curl http://npmjs.org/install.sh | sh",
    creates => "/some/directory/somewhere"
}

트릭을해야합니다.

그러나, 나는 것이라고 강력하게 다른 많은 일들이 제대로 작동 등 설치 프로세스가 따라 만들면서,이 일에 대해 조언을하고, 추적 된 파일을 떨어-알고-곳 (그리고 우리의 보안 문제에 대해 이야기를 시작도하기 전에의 당신의 파일 시스템에 신뢰할 수없고 검증 할 수없는 코드를 자동으로 실행). OS 용 기본 패키지를 만들어 로컬 리포지토리에 배치 한 다음 패키지 리소스를 사용하여 설치하는 것이 훨씬 좋습니다.


4

Womble이 패키지를 만들고 로컬 리포지토리의 패키지 관리 도구를 통해 설치하는 것에 대해 Womble이 말한 모든 것을 "두 번째"로하겠습니다. 플랫폼에 따라 사용할 수있는 신뢰할 수있는 타사 리포지토리가있을 수도 있습니다.

Womble의 답변과 관련하여 하나의 작은 nitpick : 꼭두각시 스타일 가이드 는 변수 보간에 큰 따옴표가 필요하지 않으면 작은 따옴표를 사용하는 것이 좋습니다. Womble이 보여주는 코드에는 변수가 없으므로 모든 "는 대신 '이어야합니다.

꼭두각시 문서가이 권장 사항을 반영하도록 업데이트되지 않았으므로 공식 문서에서도 많은 장소에서 큰 따옴표를 볼 수 있습니다. 스타일 가이드와 꼭두각시 린트 는 현재 권장되는 모범 사례를 반영하며 문서는 결국 수정 될 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.