首页 > 解决方案 > centos 上的 puppet fact 失败但在 ubuntu 中有效

问题描述

在 puppet 模块下运行时出现以下错误。我有 2 个代理,一个是 ubuntu 18.04 和 centos7 下面的代码在 ubuntu 中工作并停止防火墙,但在 centos 中我得到以下错误。

错误:无法从远程服务器检索目录:服务器上的错误 500:{“消息”:“服务器错误:评估错误:子字符串操作不接受字符串作为字符索引。需要一个整数(文件:/etc/puppetlabs /code/modules/service_disable_firewall/manifests/init.pp, line: 9, column: 21) on 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,
      }
    }
  }
}

提前致谢

标签: ubuntupuppetcentos7puppet-enterprisefact

解决方案


更改“案例”后问题得到解决,如下所示

case $::operatingsystem {

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


推荐阅读