我们拥有一个由一台服务器,一个客户端和另一个客户端作为工作站的测试环境。

我知道命令

# knife cookbook site install apache2

但是此命令会产生错误,因为我什至无法使用Cookbook网站进行下载。
当我下载时
# knife cookbook site download apache2

这出来了
ERROR: Connection refused connecting to cookbooks.opscode.com:80 for /api/v1/cookbooks/apache2, retry 1/5
ERROR: Network Error: Connection refused - Connection refused connecting to cookbooks.opscode.com:80 for /api/v1/cookbooks/apache2, giving up
Check your knife configuration and network settings

如果您有解决此问题的方法,也请分享,但是我的主要问题是知道手动安装食谱的方法吗?不是来自食谱网站吗?
我尝试使用那里的“下载”按钮从站点下载它,然后将tar.gz复制到工作站,将其上传到Chef服务器,将菜谱添加到节点的运行列表配方中,然后执行
# chef-client

在工作站上。这与安装相同吗?如果没有,有办法吗?

谢谢你。

最佳答案

从厨师仓库上传菜谱的正常步骤是:

  • 下载食谱并将其解压缩到chef-repo/cookbooks目录
  • 使用knife cookbook upload -aknife cookbook upload [COOKBOOKS...]将食谱上传到您的厨师服务器
  • 使用chef-client在您的客户端节点上运行Chef-client

  • 这似乎与您所做的相符。

    使用knife cookbook site install COOKBOOK“安装”食谱与通过knife cookbook site download COOKBOOK下载它基本相同,不同之处在于download命令将其保存为.tar.gz,而install命令将其提取并设置git子模块,以便您可以将其保持最新。 (请参阅Managing Cookbooks With Knife - Cookbook Site。)

    您可以使用LibrarianBerkshelf之类的工具来从任何git repo,Opscode社区站点或本地路径管理和下载食谱。这两种 gem 的工作方式都与邦德勒非常相似。它们生成Cheffile.lockBerksfile.lock,可帮助您将菜谱锁定为某个版本或提交SHA。

    编辑:我不太确定为什么knife cookbook site install/download无法正常工作;他们不需要任何身份验证。在knife cookbook site docs中:“对于仅从食谱网站读取的命令(例如下载,搜索,安装和列表),您无需在community.opscode.com上拥有帐户。对于写入该网站的命令,您需要社区网站上的帐户。”

    值得注意的是knife cookbook site downloadknife cookbook download不同。前者连接到community.opscode.com,而后者连接到您的Chef服务器。您在哪方面遇到问题?

    关于chef-infra - 厨师服务器,安装不是来自食谱网站的食谱,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14974637/

    10-09 18:53