2012-10-26 51 views
1

有沒有辦法將文件複製到另一個主機(foo)從另一個(欄)在同一個域(mydom.org),其中都不是傀儡服務器,但他們都有puppetd ​​正在運行?我正在尋找類似於服務器方法cfengine複製類似的地方,其中可以提供源文件的服務器名稱。下面是我曾嘗試和失敗:傀儡遠程複製文件從傀儡服務器以外的其他主機

node 'foo.mydom.org' inherits default { 
    include foo_class::setup 
} 

foo_class ::在木偶服務器節點模塊/ foo_class/setup.pp定義設置。

class foo_class::setup { 
    file { 
    "etc_passwd_file" : 
     path => "/etc/passwd", 
     source => "puppet://bar.mydom.org//${path_to_file}", 
    } 
    } 

當運行

puppet --noop --server=puppet --no-daemonize --verbose --onetime 

我得到錯誤:

" ..... Could not evaluate: Could not retrieve information from environment production source(s) puppet://bar.mydom.org//${path_to_file} at /etc/puppet/modules/foo_class/manifests/setup.pp ...." 

回答

1

不幸的是,沒有辦法只有木偶做到這一點。 Puppet代理進程能夠監聽並接受連接,但它們不像puppet master那樣實現文件服務器。傀儡代理的聆聽行爲適用於puppet kick功能,該功能從Puppet 3.0開始不贊成使用MCollective。

+0

謝謝。然後我不明白以下鏈接是什麼意思。我向Google羣組發佈了相同的問題,並有人回答。他似乎使用虛擬資源。我不清楚他的方法,但可能是他誤解了這個問題。您作爲開發人員的意見可能會有用。 https://groups.google.com/d/msg/puppet-users/av6A1BaBegE/sKd6dE6Fq3gJ – iamauser

+0

@iamauser我認爲其他人正在做的是使用storeconfigs將文件源從一臺機器複製到storeconfigs數據庫,從另一臺機器可以提取它並在本地寫入。它適用於一些小文件(例如ssh已知主機密鑰),但不能很好地擴展並且不是非常可靠。 – itsbruce

+0

@itsbruce:謝謝。另外我意識到* storeconfigs *在最新的puppet版本中已被棄用!需要找到解決這個問題的另一種方法... – iamauser