我们拥有一个由一台服务器,一个客户端和另一个客户端作为工作站的测试环境。
我知道命令
# 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 -a
或knife 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。)您可以使用Librarian或Berkshelf之类的工具来从任何git repo,Opscode社区站点或本地路径管理和下载食谱。这两种 gem 的工作方式都与邦德勒非常相似。它们生成
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,而后者连接到您的Chef服务器。您在哪方面遇到问题?关于chef-infra - 厨师服务器,安装不是来自食谱网站的食谱,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14974637/