Chef infra Chef服务器,安装一个不是来自cookbook站点的cookbook

Chef infra Chef服务器,安装一个不是来自cookbook站点的cookbook,chef-infra,Chef Infra,我们有一个测试环境,由一台服务器、一台客户机和另一台作为工作站的客户机组成 我知道这个命令 # knife cookbook site install apache2 但是这个命令会产生一个错误,因为我甚至不能使用cookbook站点下载。 当我下载时 # knife cookbook site download apache2 这个出来了, ERROR: Connection refused connecting to cookbooks.opscode.com:80 for /api/v

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

我知道这个命令

# 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中上传食谱的正常步骤是:

  • 下载食谱并将其解压缩到您的
    chef repo/cookbooks
    目录中
  • 使用
    刀子食谱上传-a
    刀子食谱上传[COOKBOOKS…]
  • 使用
    chef-client
  • 这似乎与你所做的相符

    使用
    刀子烹饪书站点安装烹饪书
    来“安装”烹饪书本质上与通过
    刀子烹饪书站点下载烹饪书
    来下载烹饪书相同,只是下载命令将其保存为.tar.gz,而安装命令将其提取并设置git子模块,以便您可以使其保持最新。(见附件。)

    您可以使用或之类的工具从任何git repo、Opscode社区站点或本地路径管理和下载食谱。这两种宝石的工作原理与Bundler非常相似;它们生成一个
    Cheffile.lock
    Berksfile.lock
    ,帮助您将烹饪书锁定到某个版本或提交SHA

    编辑:我真的不知道为什么
    刀烹饪书网站安装/下载
    不起作用;它们不需要任何类型的身份验证。从
    knife cookbook站点
    :“对于仅从cookbook站点读取的命令(如下载、搜索、安装和列表),您不需要community.opscode.com上的帐户。对于写入站点的命令,您需要社区站点上的帐户。”


    值得注意的是,
    刀烹饪书网站下载
    不同于
    刀烹饪书下载
    。前者连接到community.opscode.com,而后者连接到您的chef服务器。您遇到了哪些问题?

    运行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_代理

    现在,我可以成功地执行

    # 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>
    
    从0.4.0版的cookbooks网站下载入门到/home/chef/getting-started-0.4.0.tar.gz
    错误:您已成功通过身份验证http://10.43.109.236:4000 作为我的切弗瑟,但你无权进行此操作
    答复:#
    

    我认为现在的问题是Chef server的权限,而不是cookbook站点,因为我已经可以通过列出cookbook来访问它。

    我也有这个问题,使用Chef ticket系统为我修复了下载和上传:将以下行添加到你的knife.rb文件的末尾:

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

    显然您需要替换的位置<;代码>;proxyserver:8080需要替换为您的具体信息。

    您的chef repo中是否有.chef文件夹以及您的凭证(USER.pem和VALIDATOR.pem)?是。我已经解决了这个问题。我的问题似乎是http代理。在knife.rb中,我添加了http_代理。现在,我可以成功地执行#刀食谱网站列表,但安装和下载产生了一个新的错误-授权问题,它说。有什么想法吗?我在上面添加了错误。谢谢你。我现在了解到,在运行chef客户端时使用一本不是来自站点的烹饪书与安装它是一样的。最后,我通过将http_代理添加到knife.rb,成功地连接到了tho cookbook站点。我可以执行#刀食谱网站列表,但不能安装和下载。有什么想法吗?再次感谢你!没问题!你可以试着在tickets.opscode.com上开一张票,他们很乐意帮忙。我要添加的完整文本块已经没有空间了,所以我会将其粘贴到上面的答案中作为编辑。嗨!我在从community.opscode.com下载菜刀食谱网站时遇到问题。我认为问题不在于对站点的身份验证,而在于对服务器的授权。我在下面添加了错误日志以供参考。谢谢。如果我不想在git中提交这个怎么办。我们正在使用SVN,我们希望跳过整个提交到SVNMy代理需要身份验证的过程。如何在RestClient.proxy中添加凭据?我已经试过了