使用Puppet安装软件“捆绑”

Modified on: Tue, 06 Aug 2019 08:00:02 +0800

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

我似乎无法找到一个很好的现实世界的例子来管理那些不能很好玩的软件。一些例子:

  • IBM DB2(通过tarball与安装程序分发,“fixpacks”类似)
  • Simpana CommVault(使用带有ncurses接口的安装程序,但如果被哄骗则接受“回答”文件)
  • AccuRev(二进制安装程序,“回答”文件支持)
  • VMWare工具(二进制安装程序)

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

作者:Kyle Smith

最佳答案

我使用本地创建的文件维护服务器,并自行为这些软件制作.deb或.rpm软件包。

在一些我没有费心去做任何事情的情况下,我用exec wget来下载文件,用exec做提取方法无论它是什么,用creates属性指向主二进制文件。但是,它不会处理更新。

要处理更新,请安装exec a refreshonly => true,并在notify上为exec添加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',
}

相关问答

添加新评论