centos上的事实失败,但在ubuntu中起作用

时间:2019-03-01 21:25:04

标签: ubuntu puppet centos7 puppet-enterprise fact

在人偶模块下运行时出现以下错误。我有2个代理,一个是ubuntu 18.04和centos7 下面的代码在ubuntu中起作用并停止防火墙,但是在centos中却出现了以下错误。

  

错误:无法从远程服务器检索目录:错误500   SERVER:{“ message”:“服务器错误:评估错误:子字符串   操作不接受String作为字符索引。预期的   整数(文件:   /etc/puppetlabs/code/modules/service_disable_firewall/manifests/init.pp,   第9行,第21列)   node-01.home86.com“,” issue_kind“:” RUNTIME_ERROR“}警告:未使用   在失败的目录上缓存错误:无法获取目录;跳过   运行

第9行是

case $facts['os']['family'] {

我的代码是

class service_disable_firewall {

  case $facts['os']['family'] {
    'Debian': {
      service { 'ufw':
      ensure => stopped,
      }
    }
    'RedHat': {
      service { 'firewalld':
      ensure => stopped,
      }
    }
  }
}

预先感谢

2 个答案:

答案 0 :(得分:1)

按如下所示更改“大小写”后问题已解决

case $::operatingsystem {

但仍然不确定为什么我的第一个代码会失败。

答案 1 :(得分:0)

尝试用${facts['os']['family']}代替$facts['os']['family']

同时为我和他们