使用 Foreman 安裝軟體包
我有一個執行 Foreman 和 Puppet(作為主機)的 Ubuntu 14.04 伺服器,以及其他一些作為 Puppet 節點的 Ubuntu 14.04 機器。我想使用 Foreman 來確保 Puppet 節點安裝了某些軟體包。使用正常 Puppet,您可以包含類似
package { "screen": ensure => "installed" }
這會觸發一個 apt 命令並安裝螢幕。但我不確定如何與 Foreman 一起做這件事。甚至可能嗎?我沒有找到任何對它的引用,而且我所有的搜尋結果都與如何安裝 Foreman 本身有關。
首先,我不使用 Foreman,我使用 hiera。這些範例應該讓您了解 ENC 的用途,而不是提供使用 Foreman 的完整方法。這是一個涵蓋基礎知識的內容。
其次,Puppetlabs 為 puppet 特定問題提供了一個與此類似的站點,因此您可能想在那裡尋求幫助。
關於你的問題:
Foreman 和 hiera 一樣,是一個外部節點分類器 (ENC)。這意味著,您可以使用它將要載入的類或變數附加到要被載入的類使用的節點。
您仍然應該(並且必須)做的是為 puppet 提供要載入的模組和清單。
所以一個例子是編寫一個名為的模組
misc
,放入/etc/puppet/environment/prod/modules/misc
。class misc { package { "screen": ensure => "installed" } }
您可以使用 Foreman 將類附加
misc
到範例節點node01.example.com
並node02.example.com
在兩個節點上安裝 screen。另一個使用變數的例子:
class misc( $packages = [ "screen" ], ) { package { $packages: ensure => "installed" } }
您可以使用 Foreman 將類附加
misc
到範例節點node01.example.com
和node02.example.com
,並將變數設置misc::packages
為類似[ "vim", "screen", "telnet" ]
使其在兩個節點上安裝 vim、screen 和 telnet。