5

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

我知道命令

# knife cookbook site install apache2

但是这个命令会产生错误,因为我什至无法使用说明书网站下载。当我下载时,

# 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

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

谢谢你。

4

3 回答 3

8

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

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

这似乎与您所做的相符。

使用“安装”食谱knife cookbook site install COOKBOOK与通过下载基本相同,knife cookbook site download COOKBOOK只是下载命令将其保存为 .tar.gz,而安装命令将其提取并设置一个 git 子模块,以便您可以保持最新状态。(见用刀管理食谱 - 食谱网站。)

您可以使用LibrarianBerkshelf等工具从任何 git 存储库、Opscode 社区站点或本地路径管理和下载食谱。这两个 gem 的工作方式与 Bundler 非常相似。它们生成一个Cheffile.lockor Berksfile.lock,它可以帮助您将食谱锁定到一个版本或提交 SHA。

编辑:不过,我不确定为什么knife cookbook site install/download不起作用;他们不需要任何形式的身份验证。来自knife cookbook site 文档:“对于仅从食谱站点读取的命令(例如下载、搜索、安装和列出),您不需要 community.opscode.com 上的帐户。对于写入站点的命令,您需要一个帐户在社区网站上。”

值得注意的是,knife cookbook site download不同于knife cookbook download. 前者连接到 community.opscode.com,而后者连接到您的厨师服务器。你遇到了哪些问题?

于 2013-02-25T19:44:54.867 回答
0

运行 chef-client 与从站点安装说明书相同。

此外,我想出了一种解决此错误的方法:

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>

我认为现在的问题是厨师服务器的许可,而不是食谱网站,因为我已经可以通过列出食谱来访问它。

于 2013-03-01T02:59:11.987 回答
0

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

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

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

显然您需要替换的地方proxyserver:8080需要替换为您的具体情况。

于 2013-07-25T16:48:05.090 回答