ubuntu - 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,
}
}
}
}
提前致谢
解决方案
更改“案例”后问题得到解决,如下所示
case $::operatingsystem {
但仍然不确定为什么我的第一个代码会失败。
推荐阅读
- swift - UICollectionView 单元格不出现
- c - 为什么 * 和 & 对函数没有影响?
- javascript - 在更改时使用选择框对更新 url 做出反应
- php - laravel 如何与 Ajax 一起工作?
- odoo-9 - odoo ir.actions.server id 未找到
- java - PSQLException: Can't infer the SQL type ... 使用 setObject() (我正在使用它!)
- android - 在这个例子中,我可以在 Textview2 上放置 TextView1 吗?
- regex - 拆分一个字符串,只取 5 个项目。但将字符限制为 <20
- python - Mysql表格列变成按钮,可以吗?
- azure - 如何指定 BlobTrigger 绑定以使容器名称可配置?