在puppet托管节点中创建安装程序repo以用于安装和升级的最佳方法是什么

在puppet托管节点中创建安装程序repo以用于安装和升级的最佳方法是什么,puppet,configuration-management,Puppet,Configuration Management,举个例子,我有一个jboss-4.2.3安装程序作为.tar文件。一般来说,要安装jboss,我将 1.将jboss-4.2.3解压到预先定义的文件夹(opt/server/jbossas/)中,并将其解压到多个服务器中 2.将openjdk解压到首选路径(/opt/software/java)中,并在bash.profile中设置路径 3.在安装jboss的地方创建服务器配置文件 4.启动服务器 假设我必须在16个节点(服务器)中执行此操作。 现在,我应该将jboss和openjdk安装程序存

举个例子,我有一个jboss-4.2.3安装程序作为.tar文件。一般来说,要安装jboss,我将 1.将jboss-4.2.3解压到预先定义的文件夹(opt/server/jbossas/)中,并将其解压到多个服务器中 2.将openjdk解压到首选路径(/opt/software/java)中,并在bash.profile中设置路径 3.在安装jboss的地方创建服务器配置文件 4.启动服务器

假设我必须在16个节点(服务器)中执行此操作。 现在,我应该将jboss和openjdk安装程序存储在一个中心位置,并在第一步开始之前将其传输到节点

我写清单是为了满足表1到表4的要求。但我不确定如何从中央回购自动转移安装程序。我并不担心中央回购的类型。它可以是ftp、傀儡或其他任何东西

请帮帮我。我正在检查文件桶。这会有帮助吗?或者我应该写一个清单来从ftp服务器获取这个文件吗


如何创建可在puppet舱单中引用的文件回购?

我不确定您的确切问题,但您可以查看一下,了解一下

在大多数情况下,文件从puppetmaster传输到客户端。如果您在一个模块中定义了策略以卸载和安装软件包,例如模块名jboss,那么您可以在puppet master中保持tarball的这种结构,并从puppet client运行puppet agent:

/etc/puppet/module/jboss/files/jboss_pkg.tar
然后,您的客户政策应在 例如


为Puppet提供安装程序的一般解决方案是建立您自己的包存储库(而不仅仅是一个文件repo)

然后,您可以使用Puppet的内置软件包资源轻松安装/升级/卸载

以下项目似乎提供了JBoss的rpm/deb版本,您可以将其发布到存储库中


目前,我正在使用清单中的exec将文件从pupper master scp到一个目录中,然后再执行其他任务。但我们正在寻找更好的方法。
/etc/puppet/modules/jboss/manifests/init.pp
class jboss {
    file { '/tmp/installation/jboss_pkg.tar' :
            source => "puppet:///modules/jboss/jboss_pkg.tar",
         }

    #You can then right a small script that will execute all the installation process. You can use 'exec' in puppet to do that.

    exec { 'install_jboss' :
           command => "/path/to/install_jboss.sh",
           require => File["/tmp/installation/jboss_pkg.tar"],
           onlyif => "/check/that/it/is/not/installed/already",
         }
     ## and write other execs to start the server or enable services etc...
 }

  # In site.pp
  node 'client.mytest.org' {
       include jboss
  }