【问题标题】:ERROR new to chef厨师新出现的错误
【发布时间】:2018-03-13 04:03:31
【问题描述】:

Chef 新手,与我无关。构建我的食谱。

【问题讨论】:

  • 你如何测试这个?有测试厨房吗?
  • 无线/流浪者。创建了一个带有 Vagrant 的测试 VM 并将配方添加到它的运行列表中。

标签: ruby vagrant chef-infra databags


【解决方案1】:

你是如何设置数据包的?

您是否可以使用以下方法获取凭证:

$ knife vault show nameOfVault nameOfItem

$ knife data bag show nameOfVault nameOfItem_keys

【讨论】:

  • 我没有使用刀创建数据包,而是创建了一个新的“data_bags”目录并在该目录中创建了 JSON 文件,因为我使用 Vagrant 运行它。是我做错了吗?还是我还能用刀看看能不能拿到凭证?
  • chef需要识别databag,在chef manage中能看到databag吗?
  • 我没有使用 Chef Manager,因为我只在 Vagrant VM 上运行它。
【解决方案2】:

很高兴您已加载数据包,事实上,使用 Test Kitchen 您无需使用刀上传到 Chef Server,因为 Test Kitchen 使用 Chef Zero / Solo。

您在这里遇到的问题是,您在读取数据包对象后没有正确格式化读取。你需要这样做:

ruby_block "insert_line" do
  block do
    file = Chef::Util::FileEdit.new('/var/lib/net-snmp/snmpd.conf')
    file.insert_line_if_no_match("/www.example.com/", "createUser 
       #{snmp3usercreds['user']} 
       SHA #{snmp3usercreds['auth_pssword']} 
       AES #{snmp3usercreds['enc_password']} ")
    file.write_file
  end
end

因此,您会看到我已将 snmp3usercreds[user] 更改为 snmp3usercreds['user'],并在 user 周围加上引号,以表明它是一个字符串(而不是您的代码中的变量)。

【讨论】:

  • 谢谢。不敢相信我错过了。但是,我想我可能在正确加载数据包时说得太早了。当我使用 snmp3usercreds = data_bag('snmp3_user_creds') 时,它会加载,但我认为这不正确,因为我应该使用:snmp3usercreds = data_bag('snmp3_user_creds', 'credentials')。当我这样做时,它仍然没有加载。有什么想法吗?
  • 我的意思是说我应该使用 data_bag_item('snmp3_user_creds', 'credentials')。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多