【问题标题】:How to create chef cookbook in git repository?如何在 git 存储库中创建厨师食谱?
【发布时间】:2015-08-15 00:54:40
【问题描述】:

我是厨师的初学者。我想从命令行在 git 存储库中创建一本食谱。

目前我使用的语法:

c:\Users\chef-repo\demo_1\chef\site-cookbooks>git add cookbook 

但它给了我一个错误。

在这里使用的正确命令行顺序是什么?

【问题讨论】:

  • 它会给你什么错误?
  • 它给了我一个错误:致命:pathspec 'cookbooks' 不匹配任何文件
  • 无需添加:只需 git clone https://github.com/chef/chef-repo 并在本地克隆仓库中尝试厨师的东西。
  • 这就是我的答案:使用knife:它旨在添加新的食谱。但首先,克隆chef/chef-repo
  • @Vonc:谢谢!不是这样,我想在存储库中创建一个新的食谱。我知道如何使用语法来做到这一点:Chef generate cookbook

标签: git chef-infra chef-recipe cookbook


【解决方案1】:

假设您在遥控器上创建了一个空白仓库...(例如:Github 或 Gitlab)

$ git clone [... cookbookname.git]

$ cd cookbookname

$ berks cookbook cookbookname .

【讨论】:

  • 欢迎来到 Stack Overflow!请考虑编辑您的帖子,以添加更多关于您的代码的作用以及它为什么会解决问题的解释。一个大部分只包含代码的答案(即使它正在工作)通常不会帮助 OP 理解他们的问题。
【解决方案2】:

典型的空白厨师存储库(如chef/chef-repo)没有文件“cookbook”。
它有一个文件夹'cookbooks/'。

About the chef-repo:

chef-repo 是存储以下数据对象的位置:

  • 食谱(包括食谱、版本、食谱属性、资源、提供程序、库和模板)
  • 角色
  • 数据包
  • 环境
  • 配置文件(用于客户端、工作站和服务器)

要在cookbooks/ 文件夹中添加食谱,您可以使用knife

knife cookbook create COOKBOOK

【讨论】:

  • 可以只用刀添加食谱吗.. 我想你也可以从 Git 中完成
  • @ErPujaBhattacharya 如果您指的是文件夹 cookbooks/,它已经被添加,因为它是您可以克隆的 repo chef/chef-repo 的一部分。
【解决方案3】:

看来你正在把git 当作厨师工具。

Git 是一个版本控制系统(例如 svn),它不是厨师专用的。

Knife 用于创建食谱骨架,这不是强制性的,但它可以帮助您创建正确的目录结构并创建具有正确属性的metada.rb

我强烈建议阅读 https://learn.chef.io/fundamentals-series/ 以了解 Chef 的概况,然后再使用 chef-dk 和 chef generate cookbook,因为它集成了单元测试和其他一些可能会使第一次理解复杂化的工具,从而在食谱创建中更深入。


对于您的具体问题,我的理解是:“如何在特定目录中创建食谱(不在knife.rbcookbook_path 属性中)”

你可以使用knife cookbook create NAME_OF_COOKBOOK -o PATH_WHERE_TO_CREATE

如果您想在当前目录中创建食谱,PATH_WHERE_TO_CREATE 可以是 .

创建食谱后,您可以使用git initgit add 对其进行版本控制。您可能希望使用git remote add REMOTE_REPO_NAME REMOTE_REPO_URL 添加一个远程存储库以避免丢失您的工作。

如果你不熟悉 git,请花点时间阅读一些关于 git 的教程,你会节省时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    相关资源
    最近更新 更多