【问题标题】:how to pass dynamic value to chef node如何将动态值传递给厨师节点
【发布时间】:2015-02-28 04:46:27
【问题描述】:

因为我是新来的厨师。我已经完成了所有的配置和安装部分,但是当专注于动态 ie 时;运行时值没有任何想法。所有的食谱通常都是硬编码的,但是有没有任何通用的动态值方法。我已经从 How to pass attributes in chef-client without JSON file? https://docs.chef.io/knife_data_bag.html Chef Data Bags and dynamic variable passing d3.js noob : How to pass dynamic variable as data 没有得到适当的解决方案。 通过提供一些解决方案来帮助我

【问题讨论】:

  • 您的实际问题是什么?你想使用什么样的动态值?这么模糊的问题,没有人能猜出并给出正确答案。

标签: chef-infra


【解决方案1】:

通常动态值是通过nodeenvironmentroles 传入的。每个位置都允许您在不同的先例级别的节点上设置属性。或者,您也可以使用数据包,或根据 ohai 数据计算值。通过您的用例的更多详细信息,我们或许能够为您指出最合适的解决方案。

【讨论】:

    【解决方案2】:

    如果你的问题是

    • 我可以在启动 chef-client 时传递一些值作为参数吗?或
    • 我可以在运行 Chef 客户端时请求使用输入吗?

    你不能做这样的事情。这不是厨师的方式。 Chef 应该以非交互方式运行,在运行时没有用户输入。事实上,如果你有一个需要用户输入的程序,你需要让它以非交互方式运行或提供答案文件。现在这个答案文件可以用模板+属性动态化。那是你应该做的。

    如果您希望在运行 Chef 客户端时获取用户输入,那么您最好考虑使用 Ansible 等支持该功能的工具。但是,这不会使您的脚本在 Windows 等上运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 2013-05-17
      • 2016-08-19
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多