Redhat
使用 Puppet 安裝軟體“捆綁包”
我們正在研究配置/系統管理實現,我們已經做了很多 Puppet 的展示。Puppet 似乎擅長於“確保安裝了這個包,這個配置文件存在,並且這個服務正在執行”。
我似乎無法找到一個很好的現實世界範例來管理不能很好地執行的軟體。一些例子:
- IBM DB2(通過帶有安裝程序的 tarball 分發,“修復包”類似)
- Simpana CommVault(使用帶有 ncurses 界面的安裝程序,但如果被哄,將接受“應答”文件)
- AccuRev(二進制安裝程序,支持“應答”文件)
- VMWare 工具(二進制安裝程序)
Puppet 使用者採用什麼方法將這樣的軟體集成到他們的環境中?
我維護一個帶有本地創建文件的伺服器,並自己為此類軟體製作 .deb 或 .rpm 包。
在一些我懶得做任何事情的情況下,我會
exec wget
下載文件,並exec
使用提取方法,無論它可能是什麼,creates
屬性指向主二進製文件。但是,它不會處理更新。要處理更新,請安裝
exec
arefreshonly => true
,然後將 anotify
放在exec
for上wget
。樣本:
exec { "/usr/bin/wget http://fileserver.domain/jboss/jboss-${version}.prd.tar.gz -O /tmp/jboss.tgz": creates => '/tmp/jboss.tgz', require => Package['wget'], alias => 'wget_jboss', } exec { '/bin/tar xzvf /tmp/jboss.tgz': cwd => '/opt', creates => "/opt/jboss-${version}/bin", user => 'jboss', group => 'jboss', require => [ User['jboss'], Exec['wget_jboss'], File["/opt/jboss-${version}"], ], before => Service['jboss'], alias => 'untar_jboss', }