嗯,問題不是新的,但我仍然無法找到任何不錯的解決方案。 我通過傀儡文件服務器分發二進制文件100-300MB文件,但它的工作真的很糟糕,因爲我敢肯定,因爲MD5檢查。現在我有超過100臺服務器,我的木偶大師很難管理所有md5計算檢查。在文件{}的puppet 3.x校驗和中不起作用。我無法更新到木偶4.x,我沒有機會改變流程。文件應該來自puppet fileserver。 所以我不能相信沒有固定校驗和選項的自定義文件類型,但我找不到它:( 或者也許有任何其他方式從puppet文件服務器下載文件? 請任何意見將有所幫助! 的rsync或包作爲本機包是不可能的選項給我。傀儡文件服務器分發二進制文件
1
A
回答
3
這確實是合理的假設,使用默認的校驗算法(MD5)管理大型文件時,將有一個顯着的性能影響。該File
resource有checksum
attribute是應該可用於指定Puppet支持的算法中的替代校驗和算法(其中一些實際上不是校驗和本身),但是it was buggy in many versions of Puppet 3。At這一次,似乎並沒有在Puppet 4中實現的修復已被回溯到Puppet 3系列。
如果您只需分發文件,而不需要關心後續更新或通過Puppet保持一致性,那麼您可以考慮關閉校驗和。這可能是這個樣子:
file { '/path/to/bigfile.bin':
ensure => 'file',
source => 'puppet:///modules/mymodule/bigfile.bin',
owner => 'root',
group => 'root',
mode => '0644',
checksum => 'none',
replace => false
}
如果你想管理現有的文件,然而,然後木偶需要一種方法來確定已經存在的節點上的文件是否是最新的。這是校驗和的兩個主要目的之一。如果你堅持通過Puppet文件服務器分發文件,並且你停留在Puppet 3上,那麼恐怕在減輕負載方面你運氣不佳。 Puppet的文件服務器與文件資源類型緊密集成,而不是用於一般用途。據我所知,沒有利用它的第三方資源類型。在任何情況下,文件服務器本身都是File
的checksum
參數無效的問題的主要原因 - 有問題的版本不執行除MD5之外的任何類型的校驗和。作爲一種替代方案,您可以考慮將您的大文件打包爲您的系統本地打包格式,將其放到您的內部軟件包存儲庫中,然後管理軟件包(通過Package
資源),而不是直接管理文件。這確實遠離通過文件服務器分發它,但這非常重要。
相關問題
- 1. 傀儡代理商文件
- 2. 傀儡遠程複製文件從傀儡服務器以外的其他主機
- 3. 傀儡文件遞歸變化很慢
- 4. 如何在傀儡中追加文件
- 5. 傀儡 - 變量文件變更權限
- 6. 發送多個二進制文件到服務器 - 代號1
- 7. 使用Qt發送二進制文件到服務器
- 8. 服務從網絡服務器二進制文件,客戶端
- 9. logparser二進制文件分發
- 10. 傀儡文件夾中的文件迭代循環
- 11. 將大型二進制文件發送到服務器的WCF服務
- 12. 簡單的傀儡腳本來複制文件
- 13. 傀儡機制,以防止覆蓋非託管文件
- 14. 傀儡從init.d獲得服務
- 15. 傀儡服務沒有通知
- 16. 「把二進制」,而不是LiveCode服務器上的二進制文件
- 17. 要求傀儡在開始服務之前放置一個文件
- 18. 傀儡重啓分階段
- 19. 在web服務soap響應中發送二進制文件
- 20. javascript發送文件二進制數據到網絡服務
- 21. 如何讀取服務器中的二進制文件位置?
- 22. 春雲配置服務器 - 如何下載二進制文件
- 23. 從遠程服務器獲取二進制文件列表
- 24. ATL&COM - 多個服務器,一個二進制文件?
- 25. 將二進制文件上傳到服務器
- 26. 團隊基礎服務器中的二進制文件
- 27. 編譯VNC服務器二進制文件(Android版)
- 28. 使用jQuery從服務器下載二進制文件
- 29. 使用傀儡
- 30. 傀儡廚師轉換器
感謝您的回覆! 是的...我一直在關注問題PUP-1208 :),但不知道它被backported到puppet 3.x我試過3.8.5,它沒有像3.5.x一樣工作我的意思是md5lite或sha甚至ctime或mtime。 在我的情況下,我在意文件uptodate狀態,所以對我來說mtime應該是完全夠用的,但它不起作用:( 順便說一句,因爲我們使用它很多,它仍然不支持3.x傀儡傀儡4.也許應該嘗試puppetDB ... –
@RomanIuvshin,我寫道,PUP-1208的修復已經*沒有* backported,所以我並不感到驚訝,聽到v3.8.5表現出與v3.5相同的不當行爲對於puppetDB,我並沒有看到你希望在這種情況下會爲你做什麼,如果你需要繼續使用Puppet 3,但是離開MD5,那麼你可能需要離開Puppet文件服務器。建議使用包代替是一個相當直接的選擇,但也有其他的。 –
哦,我現在看到了。感謝您的好評! –