厨师服务器,安装一个不是来自cookbook网站的食谱

Ell*_*lla 5 chef-infra

我们有一个测试环境,包括一个服务器,一个客户端和另一个客户端作为工作站.

我知道这个命令

# knife cookbook site install apache2
Run Code Online (Sandbox Code Playgroud)

但是这个命令会产生错误,因为我甚至无法使用cookbook网站下载.当我下载,

# knife cookbook site download apache2
Run Code Online (Sandbox Code Playgroud)

这出来了,

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
Run Code Online (Sandbox Code Playgroud)

如果你有什么要解决这个问题,请分享,但我的主要问题是知道一种手动安装食谱的方法吗?不是来自食谱网站?我尝试使用"下载"按钮从站点下载它,然后将tar.gz复制到工作站,将其上传到厨师服务器,将菜谱添加到节点的运行列表配方中,然后执行

# chef-client
Run Code Online (Sandbox Code Playgroud)

在工作站里.这和安装方法一样吗?如果没有,有办法吗?

谢谢.

Anu*_*ani 8

从chef-repo中上传cookbook的正常步骤是:

  1. 下载并将菜谱解压缩到您的chef-repo/cookbooks目录
  2. 使用knife cookbook upload -a或将菜谱上传到厨师服务器knife cookbook upload [COOKBOOKS...]
  3. 使用在客户端节点上运行chef-client chef-client

这似乎与你所做的相符.

使用"安装"菜谱knife cookbook site install COOKBOOK与下载菜单基本相同,knife cookbook site download COOKBOOK只是下载命令将其保存为.tar.gz,而install命令将其提取并设置git子模块,以便您可以使其保持最新.(请参阅使用刀具管理Cookbook - Cookbook网站.)

您可以使用LibrarianBerkshelf等工具从任何git仓库,Opscode社区站点或本地路径管理和下载cookbook.这两种宝石的工作方式与Bundler非常相似; 他们生成Cheffile.lockBerksfile.lock帮助您将烹饪书锁定到版本或提交SHA.

编辑:我不确定为什么knife cookbook site install/download不能工作; 它们不需要任何形式的身份验证.从knife cookbook site 文档:"对于简单地从菜谱站点读取的命令(例如下载,搜索,安装和列表),您不需要在community.opscode.com上拥有帐户.对于写入站点的命令,您需要一个帐户在社区网站上."

值得注意的是,knife cookbook site download与...不同knife cookbook download.前者连接到community.opscode.com,而后者连接到您的厨师服务器.你有哪些麻烦?