Redhat

使用 Puppet 安裝軟體“捆綁包”

  • June 29, 2011

我們正在研究配置/系統管理實現,我們已經做了很多 Puppet 的展示。Puppet 似乎擅長於“確保安裝了這個包,這個配置文件存在,並且這個服務正在執行”。

我似乎無法找到一個很好的現實世界範例來管理不能很好地執行的軟體。一些例子:

  • IBM DB2(通過帶有安裝程序的 tarball 分發,“修復包”類似)
  • Simpana CommVault(使用帶有 ncurses 界面的安裝程序,但如果被哄,將接受“應答”文件)
  • AccuRev(二進制安裝程序,支持“應答”文件)
  • VMWare 工具(二進制安裝程序)

Puppet 使用者採用什麼方法將這樣的軟體集成到他們的環境中?

我維護一個帶有本地創建文件的伺服器,並自己為此類軟體製作 .deb 或 .rpm 包。

在一些我懶得做任何事情的情況下,我會exec wget下載文件,並exec使用提取方法,無論它可能是什麼,creates屬性指向主二進製文件。但是,它不會處理更新。

要處理更新,請安裝execa refreshonly => true,然後將 anotify放在execfor上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',
}

引用自:https://serverfault.com/questions/285423