2012-07-09 81 views
1

所以,我有一個puppet存儲庫。它的版本與git和類似的東西。對我來說,能夠對我的機器上的這個存儲庫進行試驗性更改會很方便,然後在將這些更改提交給puppet服務器之前,在測試計算機上嘗試更改(避免接觸生產計算機以進行測試的麻煩以及傀儡簽署臨時EC2實例的麻煩)。我可以scp一到適當的機器repostory的副本和做puppet apply site.pp --modulepath=foo --templatedir=blah,它主要是工程...如何指定puppet的目錄:/// private /運行'puppet apply'時?

,直到我會有從puppet:///private/foo源文件。那麼這全是Could not evaluate: Could not retrieve information from source(s) puppet:///private/foo at /home/ubuntu/ops-puppet/production/modules/foobar/manifests/baz.pp:68

是否有一個命令行標誌可以用來指定'私人'文件的路徑?我似乎無法找到它在文檔中(但我可能只是在今天早上忘記;)

+1

'private'目錄是否在測試服務器上具有適當的權限?去看看'/ etc/puppet'或者你放置文件的地方,以確保這個錯誤沒有說出真相。如果錯誤是準確的,請在你的SCP中包含'/ private'目錄(或者只包含整個'/ etc/puppet'文件夾)。 – 2012-07-09 17:25:51

+0

版本庫正在rsynced到'/ home/ubuntu/puppet',而不是'/ etc/puppet'。如果我能夠找到一個解決方案,它不會涉及/ etc/puppet(每個用戶@pwan在下面),那真是太好了,因爲實際上我在這裏處理了幾個實例(rsyncable的東西和可以粘貼的命令行標誌非常可愛) - 但如果沒有任何我想這只是我必須要應對的。 – fennec 2012-07-09 19:48:54

回答

1

檢查您的/etc/puppet/fileserver.conf文件(http://docs.puppetlabs.com/guides/ file_serving.html#file-server-configuration),並確保它有一個指向預期目錄的[private]塊。

Zac B對關於檢查私人目錄權限問題的評論也是一個好主意。

+0

好吧,我不得不努力工作,但能夠把它變成一個決議。由於我試圖從'/ home/ubuntu/puppet'中的git倉庫的副本「傀儡申請」,以實現輕鬆的rsync原因,我不得不進入/ etc/puppet和symlink puppet.conf, fileserver.conf和來自該存儲庫的'private'目錄。 (將整個目錄symlinking到'/ etc/puppet'不起作用;我認爲etckeeper hooks嚇壞了。)這實際上很糟糕;我尋找一種方法來使用命令行來指定它,但'--fsconfig'似乎只是puppetmaster。 Blegh。 – fennec 2012-07-09 19:46:41

+0

振作起來;你總是可以編寫一個bash腳本來處理爲你創建的符號鏈接,並且當你完成測試時把它撕掉(或者,如果你擔心忘記這個混亂,你可以通過cron將它們撕下來)。然後你只需要運行兩個命令來準備測試:你的scp,然後make_links.sh或者你有什麼。 – 2012-07-09 21:00:18

+0

另一種方法是切換到使用「私人」模塊並將您的私人文件移動到/ etc/puppet/modules/private/files下,然後將源文件更改爲puppet:// modules/private/foo。你可能想要在/etc/puppet/fileserver.conf中添加一個[modules]塊,這樣puppet將服務於modules目錄下的文件。 – pwan 2012-07-09 22:01:19