Puppet Nginx安装CentOs

Jer*_*emy 0 puppet

有人可以告诉我为什么这不起作用?这段代码在Ubuntu服务器上工作正常,但在CentOS上崩溃了.我正在运行Puppet版本3.7.2.

node default {
  package { 'httpd':
    ensure => 'absent'
  }

  package { 'nginx':
    ensure => 'installed',
    require => Package['httpd'],
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Error: Execution of '/bin/yum -d 0 -e 0 -y list nginx' returned 1: Error: No matching Packages to list
Error: /Stage[main]/Main/Node[default]/Package[nginx]/ensure: change from absent to present failed: Execution of '/bin/yum -d 0 -e 0 -y list nginx' returned 1: Error: No matching Packages to list
Run Code Online (Sandbox Code Playgroud)

Dan*_*ark 5

nginx不在默认的CentOS仓库中; 它需要epel.在安装软件包之前,您需要epel-release:

package { 'epel-release':
  ensure => 'installed',
}

package { 'nginx':
  ensure  => 'installed',
  require => [Package['httpd'], Package['epel-release']],
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你的nginx安装是否特别要求安装之前不存在httpd ?您应该能够删除httpd元参数依赖项.