人偶:安装 rpm

Puppet: Install rpm

我正在尝试通过 Puppet 安装 jdk rpm。我尝试了很多清单,但其中 none 有效。

此时此刻,我有这样的表现

class java {

  #file {' Java 8 rpm file':
  #source =>  'puppet:///modules/java/jdk-8u161-linux-x64.rpm',
  #}


package { 'jdk-8u161-linux-x64.rpm':
  ensure   => 'present',
  provider => 'rpm',
  source   =>  '/etc/puppetlabs/code/environments/production/modules/java/jdk-8u161-linux-x64.rpm',
}

}

我遇到了以下错误

[root@sahasraarchi ~]# puppet agent -t
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for sahasraarchi.devmac.com
Info: Applying configuration version '1517758835'
Error: Execution of '/usr/bin/rpm -i /etc/puppetlabs/code/environments/production/modules/java/jdk-8u161-linux-x64.rpm' returned 1: error: open of /etc/puppetlabs/code/environments/production/modules/java/jdk-8u161-linux-x64.rpm failed: No such file or directory
Error: /Stage[main]/Java/Package[jdk-8u161-linux-x64.rpm]/ensure: change from absent to present failed: Execution of '/usr/bin/rpm -i /etc/puppetlabs/code/environments/production/modules/java/jdk-8u161-linux-x64.rpm' returned 1: error: open of /etc/puppetlabs/code/environments/production/modules/java/jdk-8u161-linux-x64.rpm failed: No such file or directory
Notice: Applied catalog in 2.01 seconds
[root@sahasraarchi ~]#

看来我错过了这里的基本点。 package 属性的来源始终引用 Puppet-agent 上的地址。即在安装之前将文件复制到远程机器的位置。

class java {

  file {' /tmp/jdk-8u161-linux-x64.rpm':
  source =>  'puppet:///modules/java/jdk-8u161-linux-x64.rpm',
  }


package { 'jdk-8u161-linux-x64.rpm':
  ensure   => 'present',
  provider => 'rpm',
  source   =>  '/tmp/jdk-8u161-linux-x64.rpm',
  require => File["/tmp/jdk-8u161-linux-x64.rpm"],
}

}

将在 Puppet-agent 上安装 rpm。