【问题标题】:Chef to pull from local directory厨师从本地目录中提取
【发布时间】:2020-11-24 16:35:20
【问题描述】:

通常,厨师节点中的厨师客户端从厨师服务器中提取更改。如何将厨师客户端指向具有我更改的本地文件夹。大厨 Solo 会帮忙吗

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    我认为你是在正确的轨道上。我们可以使用chef-solo 在本地创建说明书并直接在节点上执行。

    我们以节点node1.example.net为例,我们可以在其中有一个配置文件solo.rb(可以是任何名称)。

    solo.rb

    cookbook_path '/home/user/.chef/cookbooks'
    file_cache_path '/home/user/.chef/cache'
    role_path '/home/user/.chef/roles'
    data_bag_path '/home/user/.chef/databags'
    

    如果我们此时运行chef-solo

    chef-solo -c /home/user/.chef/solo.rb
    

    不会有run_list,所以什么都不会发生,但是会在.chef/nodes 目录中创建一个<node name>.json,例如node1.example.net.json

    现在我们可以将食谱存储在/home/user/.chef/cookbooks 下,并将适当的食谱添加到node1.example.net.json 文件的run_list 中。

    或者我们可以提供一个可选的.json 文件以及我们需要的运行列表。类似example.json:

    {
      "name": "tftest-devops01.headquarters.healthedge.com",
      "chef_environment": "_default",
      "json_class": "Chef::Node",
      // some lines removed
      "run_list": [
        "recipe[my_cookbook]"
      ]
    }
    

    然后运行为:

    chef-solo -c solo.rb -j example.json
    

    零厨师

    还有一个chef-zero,它可以帮助运行“本地”(内存中)Chef 服务器来模仿Chef 服务器的功能,从而允许我们执行knife 操作。

    【讨论】:

    • 缺少食谱:------ 没有这样的食谱:基础扩展运行列表:------------ - - - * 根据。这个错误现在已经弹出
    • 你有cookbook_path 里的所有食谱吗?如果您正在使用具有多个依赖项的说明书,那么您应该在该路径中拥有所有它们(及其版本)。
    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    相关资源
    最近更新 更多