【问题标题】:Trouble with create_resources in Puppet 3.3.1Puppet 3.3.1 中的 create_resources 问题
【发布时间】:2013-11-22 01:04:31
【问题描述】:

我正在使用 puppet 3.3.1 来配置一个运行 ubuntu 12.04 和 hiera 的 vagrant box。

当我在 yaml 文件中明确声明每个参数时,我可以将 hiera 与 create_resources 一起使用,但我无法获得 http://docs.puppetlabs.com/references/latest/function.html#createresources 所述的默认值(可选的第三个参数起作用)

这是一个不起作用的例子:

# hiera.yaml
---
:backends:
  - yaml
:yaml:
  :datadir: /vagrant/hiera
:hierarchy:
  - common

这是common.yaml中的数据

# common.yaml

ssh_keys:
  deployer_key:
    user: deployer
    # type: ssh-rsa
    # ensure: present
    key: "AAAAB3NzaC1yc2EAAAABIwAAAQEA9Y9X..."

现在,如果我在清单中调用以下内容,它会抱怨没有将类型传递给 ssh_authorized_key

create_resources("ssh_authorized_key", hiera("ssh_keys"), { ensure => present, type => "ssh-rsa" } )

但如果我取消注释类型并确保 common.yaml 中的行并调用

create_resources("ssh_authorized_key", hiera("ssh_keys"))

一切正常。

如何让默认参数起作用?最好不要把东西弄干。我想我可以使用 &label<< 语法重用 yaml 文件本身中的部分,但似乎这种默认行为应该是可能的。

有什么建议吗?

【问题讨论】:

    标签: ubuntu ssh virtual-machine vagrant puppet


    【解决方案1】:

    你必须把它放在一个单独的变量中。

    $defaults = {
        ensure => present,
        type => "ssh-rsa",
    }
    
    create_resources("ssh_authorized_key", hiera("ssh_keys"), $defaults)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2017-10-03
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      相关资源
      最近更新 更多