使用 Puppet 安装软件“捆绑包”

Kyl*_*ith 6 package-management deployment redhat puppet

我们正在研究配置/系统管理实现,我们已经做了很多 Puppet 的演示。Puppet 似乎擅长一些简单的“确保此包已安装,此配置文件存在,并且此服务正在运行”。

我似乎无法找到管理运行效果不佳的软件的真实示例。一些例子:

  • IBM DB2(通过带有安装程序的 tarball 分发,“修复包”类似)
  • Simpana CommVault(使用带有 ncurses 界面的安装程序,但如果被哄骗将接受“答案”文件)
  • AccuRev(二进制安装程序,支持“应答”文件)
  • VMWare 工具(二进制安装程序)

Puppet 用户采用什么方法将这样的软件集成到他们的环境中?

Dan*_*ral 5

我维护一个带有本地创建文件的服务器,并自己为这些软件制作 .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',
}
Run Code Online (Sandbox Code Playgroud)