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

时间:2013-02-20 07:41:14

标签: chef

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

我知道命令

# 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-client

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

谢谢。

3 个答案:

答案 0 :(得分:8)

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

  1. 下载并将食谱提取到您的chef-repo/cookbooks目录
  2. 使用knife cookbook upload -aknife cookbook upload [COOKBOOKS...]
  3. 将食谱上传到您的厨师服务器
  4. 使用chef-client
  5. 在您的客户端节点上运行chef-client

    这似乎与你所做的相符。

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

    您可以使用LibrarianBerkshelf等工具从任何git仓库,Opscode社区网站或本地路径管理和下载手册。这两种宝石的工作方式与Bundler非常相似;它们生成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,而后者连接到您的厨师服务器。你遇到什么问题?

答案 1 :(得分:0)

运行chef-client与从网站安装cookbook相同。

此外,我找到了解决此错误的方法:

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

我在/root/.chef/knife.rb

中添加了http_proxy

现在,我可以成功执行

# knife cookbook site list

然而,cookbook网站的安装和下载产生了一个新的错误。

Downloading getting-started from the cookbooks site at version 0.4.0 to /home/chef/getting-started-0.4.0.tar.gz
ERROR: You authenticated successfully to http://10.43.109.236:4000 as my-chefuser but you are not authorized for this action
Response:  #<Net::ReadAdapter:0x2b2afa986ac0>

我认为问题现在是Chef服务器的许可,而不是cookbook网站的权限,因为我已经通过列出cookbook来访问它。

答案 2 :(得分:0)

我也遇到了问题,并且在Chef票证系统中使用了这个问题,为我修复了下载和上传:将这些行添加到knife.rb文件的末尾:

http_proxy                "http://proxyserver:8080"
https_proxy               "http://proxyserver:8080"

require 'rest-client'
RestClient.proxy = "http://proxyserver:8080"

显然你需要替换proxyserver:8080需要替换你的具体内容。