2012-03-01 2 views
7

모듈 (이 경우 Nginx)에서 패키지를 설치하고 모듈 외부의 구성 파일을 포함하고자합니다. 즉 최상위 레벨 files 디렉토리를 최상위 레벨 manifests 디렉토리. 모듈이나 절대 로컬 경로를 참조하는 현재의 Vagrant 환경에 파일을 포함시키지 않고 파일을 소스화할 수있는 방법은 없습니다.모듈 외부의 Puppet 파일 소싱

퍼핏은 설명서에 설명 된대로 모듈 외부에서 파일을 소싱 할 수 있습니까?

답변

3

질문을 올바르게 이해하면 답변을 드릴 수 있습니다. 이

file { '/path/to/file': 
    ensure => present, 
    source => [ 
       "puppet:///files/${fqdn}/path/to/file", 
       "puppet:///files/${hostgroup}/path/to/file", 
       "puppet:///files/${domain}/path/to/file", 
       "puppet:///files/global/path/to/file", 
    ], 
} 

같은 모듈에서 간단한 코드는 일을 할 것입니다. /경로/to/파일은 "파일"퍼핏 공유에있는 파일을 사용하여 소스됩니다. (위의 예에서는 4 개의 다른 위치에서 검색합니다). 당신이 인형의 파일 서버에 의해 공유되지 않는 파일을 저장할 디렉토리에 대해 얘기하고 어쩌면

갱신은 (http://docs.puppetlabs.com/guides/file_serving.html보고),이 경우 당신은 내가, 방랑 여부를 생각할 수 없다,하지만 당신은 추가 할 수 있습니다 그것이 당신의 꼭두각시 파일 서버에 있습니다. 나는 그것이 최선의 방법이라고 생각합니다.

1

많은 Vagrant VM이있는 경우 Vagrant 프로젝트 디렉토리 (VagrantFile 포함)에 파일을 저장할 수 있습니다. 이 디렉토리는 대개 생성시 VM 내의/vagrant로서 모든 VM에서 사용할 수 있습니다.

당신은 당신이 단순히 VM에 로컬 파일로 처리 할 수 ​​꼭두각시 내의 파일을 사용

# see http://docs.vagrantup.com/v1/docs/config/vm/share_folder.html 
config.vm.share_folder "v-packages", "/vagrant_packages", "../../dpkg" 

그런 다음 VagrantFile에 다음을 추가하여 VM을 사용할 수 귀하의 컴퓨터에서 다른 디렉토리를 원하는 경우

# bad example, bub basically use 'source => 'file:///vagrant/foo/bar' 
file { '/opt/cassandra': 
    ensure => directory, 
    replace => true, 
    purge => true, 
    recurse => true, 
    source => 'file:///vagrant/conf/dist/apache-cassandra-1.2.0', 
} 

로컬 인형 매니페스트/모듈 만 사용하는 경우에만하는 것이 좋습니다.

0

... 나 자신을 위해 그것을 파악하기 전에했던 것처럼,이 질문에 걸쳐 일어날 bennylope하지만, 다른 사람을 위해 ...

이 Vagrantfile이 같은 물건을 포함 도움을 아마 너무 늦게

GUEST_PROVISIONER_CONFDIR = "/example/destination/path" 
HOST_PROVISIONER_CONFDIR = "/example/source/path" 
config.vm.synced_folder HOST_PROVISIONER_CONFIDIR, GUEST_PROVISIONER_CONFDIR 
puppet.options = "--fileserverconfig='#{GUEST_PROVISIONER_CONFDIR}/fileserver.conf'" 

그런 다음/example/source/path에 참조 된 fileserver.conf 파일이 포함되어 있는지 확인하십시오. 그것은 예를-file.txt를가, 다음이 매니페스트에서 작동에서/예/소스/경로를 존재 가정, ... 등 지금

[foo] 
    path /example/destination/path 
    allow * 

을 보일 것이다 :

source => "puppet:///foo/example-file.txt", 

참조 :

  1. Puppet configuration reference entry for fileserverconfig
  2. Serving Files From Custom Mount Points