Puppet - 将哈希作为类参数传递

标签 puppet

试图做这样的事情:

# nodes.pp
node 'dev-a-1.sn1.vpc1.example.com' inherits project_j1n_sn1_vpc1_dev {

    class { 'custom::core':
        overrides => {
            'openssh' => {'settings' => {'external_access' => 'true'}}, # Allow direct mounting for dev
            'rsyslog' => {'settings' => {'role' => 'node', 'filters' => {'php' => {'target' => 'remote'}, 'mail' => {'target' => 'remote'}}}}
        }
    }
}

# custom::core
class custom::core($overrides = {}) {

    if (has_key($overrides, 'openssh')) {

        $settings = $overrides['openssh']['settings']

        # Doesn't work
        create_resources('openssh', $settings)

        # Doesn't work
        class { 'openssh': $settings }
    }
}

是否可以调用一个类并将散列作为参数传递?

Puppet/Puppetmaster v2.7.26-1 (Centos 6.7)

最佳答案

在 Puppet 4+ 中有一种方法。

class { 'ssh':
  * => $settings
}

roidelapluie's blog 上了解所有相关信息.

关于Puppet - 将哈希作为类参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33442533/

相关文章:

linux - puppet 模块获取 'Permission denied' 应用基于 NFS 的主目录

Puppet - 通知定义资源中的服务

jenkins - 使用 docker、puppet 和 jenkins 进行持续交付和 PROD 部署

java - 使用 git、maven、puppet 和 jenkins 时的工作流程是什么?

apache - 如何通过 Puppet Manifest 在 Apache 中启用 AllowOverride?

ruby - 在 Ruby 中读取一行文本时如何删除 "hidden"个字符?

puppet - 破译 puppet 输出

linux - 为什么 puppet 资源在指定提供者时表现不同

python - 类似 python 的 puppet 语法

ruby - 在 CircleCI 中指定 Puppet + Ruby 版本矩阵