【问题标题】:chef-- knife cookbook upload gives error ERROR: Errno::ENOENT: No such file or directory, on windows厨师——刀菜谱上传给出错误错误:Errno::ENOENT:没有这样的文件或目录,在windows上
【发布时间】:2023-09-02 21:31:01
【问题描述】:

我是 Chef 的新手,从 Robin Beck 的教程 Lynda 学习。我正在使用 Windows 10 并按照教程中的说明安装了 ChefDk。树形结构如下:

C:.
├───.chef
├───cookbooks
│   └───apache
│       ├───.delivery
│       │   └───build_cookbook
│       │       ├───data_bags
│       │       │   └───keys
│       │       ├───recipes
│       │       ├───secrets
│       │       └───test
│       │           └───fixtures
│       │               └───cookbooks
│       │                   └───test
│       │                       └───recipes
│       ├───recipes
│       ├───spec
│       │   └───unit
│       │       └───recipes
│       ├───templates
│       │   └───default
│       └───test
│           └───recipes
└───roles

我正在尝试使用刀命令上传食谱:

knife cookbook upload apache

我正在从“chef-repo”目录运行命令,但出现如下错误:
ERROR: Errno::ENOENT: No such file or directory

请在屏幕截图下方查看更多信息。

请帮忙,提前谢谢!

编辑:

请在下面找到刀.rb 文件的输出。

#See http://docs.chef.io/config_rb_knife.html for more information on knife configuration options

current_dir = File.dirname(__FILE__)

log_level                :info

log_location             STDOUT

node_name                "hakiuser"

client_key               "#{current_dir}/hakiuser.pem"

chef_server_url          "https://api.chef.io/organizations/cheflynda"

cookbook_path            ["#{current_dir}/../cookbooks"]

【问题讨论】:

  • 食谱本身可能缺少一些东西。不幸的是,您的 tree 仅显示目录而不显示文件。可能是metadata.rb 是错误的还是缺失的?

标签: chef-infra knife cookbook


【解决方案1】:

您是否尝试从食谱路径上传? 在你的情况下:

cd C:\Users\Akshay\Downloads\Compressed\chef-repo\cookbooks 刀菜谱上传apache

如果这不起作用,您也可以在上传时提供食谱的绝对路径。

刀上传 -o PATH:PATH, --cookbook-path PATH:PATH

如果上面仍然不起作用,你能打印你的knife.rb的输出吗? 应该有通往厨师仓库的路径。下

刀[:chef_repo_path]

【讨论】:

  • 基本食谱路径can be set in knife.rb,查找cookbook_path
  • @nmanh 嗨!谢谢您的回答。您建议的解决方案对我不起作用。我添加了knife.rb 文件的输出。请提出替代解决方案。
  • 我会尝试以下两种方法: - 删除 cookbook_path 并执行我的第一个建议。 cd 进入文件夹并从C:\Users\Akshay\Downloads\Compressed\chef-repo\cookbooks 开始上传 --- 或者 --- - 你的刀子.rb 位于哪里?因为#{current_dir}/../cookbooks 取决于你的knife.rb 的当前文件夹。您可以添加食谱的绝对路径。喜欢:C:\Users\Akshay\Downloads\Compressed\chef-repo\cookbooks
【解决方案2】:

我正在上同一门课,遇到了同样的问题。类中包含的 Apache 一定有问题。 我下载了一个不同的: https://supermarket.chef.io/cookbooks/apache2 我能够上传这个。虽然不知道它是如何工作的,但至少我可以继续下一课。

【讨论】:

    最近更新 更多