我们有一个测试环境,包括一个服务器,一个客户端和另一个客户端作为工作站。
我知道命令
# 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
在工作站中。这和安装方法一样吗?如果没有,有办法吗?
谢谢。
答案 0 :(得分:8)
从chef-repo中上传食谱的正常步骤是:
chef-repo/cookbooks
目录knife cookbook upload -a
或knife cookbook upload [COOKBOOKS...]
chef-client
这似乎与你所做的相符。
使用knife cookbook site install COOKBOOK
“安装”菜谱与通过knife cookbook site download COOKBOOK
下载菜单基本相同,只是下载命令将其保存为.tar.gz,而install命令将其提取并设置为git子模块,以便您可以保持最新。 (见Managing Cookbooks With Knife - Cookbook Site。)
您可以使用Librarian或Berkshelf等工具从任何git仓库,Opscode社区网站或本地路径管理和下载手册。这两种宝石的工作方式与Bundler非常相似;它们生成Cheffile.lock
或Berksfile.lock
,可帮助您将烹饪书锁定到版本或提交SHA。
编辑:我不确定为什么knife cookbook site install/download
不起作用;它们不需要任何形式的身份验证。来自knife cookbook site
docs:“对于只是从菜谱网站上读取的命令(例如下载,搜索,安装和列表),您不需要在community.opscode.com上拥有帐户。写入网站需要社区网站上的帐户。“
值得注意的是knife cookbook site download
与knife 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
需要替换你的具体内容。