centos – 管理启用 – 禁用Hiera puppet的nginx网站?

前端之家收集整理的这篇文章主要介绍了centos – 管理启用 – 禁用Hiera puppet的nginx网站?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我得到了实现hiera puppet脚本来管理Nginx的sites_enabled的任务.

这是我的傀儡剧本:

common.yaml

---
classes:
    - Nginx

Nginx:
    enabled:
        abc.com
        xyz.com
    disabled:
        test.com
        test2.com

init.pp

class Nginx{
    create_resources("site_enabled",hiera("Nginx"),{})
}

define site_enabled($name){
    file { '/etc/Nginx/sites_enabled/${name}':
       ensure => 'link',target => '/etc/Nginx/site_available/${name}',}
}

但是当木偶执行时我得到了错误

err: Could not retrieve catalog from remote server: Error 400 on
SERVER: can’t convert String into Integer at
/etc/puppet/modules/Nginx/manifests/init.pp:7 on node XX

当我试图通过命令行查询hiera时:

$hiera Nginx

{“enabled”=>[“abc.com”,“xyz.com”]}

我知道我错了一些地方.请你好好指正.
我不太了解,如何使用数组数据查询和处理.如果可能的话,请指出一些有用的文件.

非常感谢.

你的问题非常类似于 Problems creating Hiera hashes for create_resources,它有一个答案.我在这里提供一个回顾.

根据documentation for create_resources,哈希必须采用{title =>形式{parameters}}.您应该编辑hiera数据以设置参数.由于没有,我认为它可能看起来像这样:

common.yaml

---
classes:
    - Nginx

Nginx::enabled:
    abc.com: {}
    xyz.com: {}
Nginx::disabled:
    test.com: {}
    test2.com: {}

接下来,您需要实际从hiera加载正确的数据.你想加载Nginx :: enabled,而不是所有的Nginx

init.pp

class Nginx{
    create_resources("site_enabled",hiera("Nginx::enabled"))
}

define site_enabled($name){
    file { '/etc/Nginx/sites_enabled/${name}':
       ensure => 'link',}
}

猜你在找的CentOS相关文章