在 Ubuntu 14 上设置 Chef Server 11 时连接被拒绝

在 Ubuntu 14 上设置 Chef Server 11 时连接被拒绝

我刚刚在 HPCloud.com 上启动了一个 Ubuntu 14.04 VM 来练习 Chef。

按照此图里亚尔我在 HPCloud 上设置了 DNS,并将 /etc/hosts 中的主机名设置为 chef-server.mydomain.com

跑步时

chef-server-ctl user-create user_name first_name last_name email password --filename FILE_NAME

我越来越

ERROR: Connection refused connecting to https://127.0.0.1/users/, retry 1/5

它重试了 5 次,但失败了。我的设置有什么问题?

答案1

我很想在评论中问你这个问题,但我认为我可以在答案部分更详细地阐述并给出可能的解决方案。

因此,当任何服务(不仅仅是 Chef)的连接被拒绝时,请检查服务是否正在执行其应有的操作。因此,我假设您已获取 apache 2.x cookbook 并正确安装了它,对吗?

阶段1:

如果是,则发出:

netstat -anp | grep :443 # or whatever your designated HTTP/HTTPS port is.

如果您看到了,那太好了,服务正在运行并且已经打开了端口,请继续执行第 3 阶段。如果服务尚未打开端口,请继续执行第 2 阶段。

第二阶段:

确保您配置 SELinux 以允许服务生成并打开端口。

https://wiki.ubuntu.com/SELinux

进而;

semanage port -a -t http_port_t -p tcp 443

您可以随时在 SELinux 配置文件中检查 SELinux 是否强制执行或禁用。

如果 SELinux 被禁用,则检查您是否正在运行 iptables,如果是,则发出以下命令(假设端口 443 是您的 HTTPS 端口):

 iptables -A INPUT -p tcp --dport 443 -j ACCEPT

或者如果你使用firewalld

    firewall-cmd --zone=public --add-port=443/tcp --permanent

第三阶段:

您有权限查看目录 /users 吗?您没有指定 HTTP 错误编号,因此我假设您尝试执行的任何操作都拒绝了连接,可能是由于权限问题。

请记住,您正在使用的 Chef 命令正在尝试创建一个用户,如果您不是 root 的话,您也可以尝试 sudo!

可能发生的另一个错误是检查您的 SSL 设置并确保您已允许 127.0.0.1 被 127.0.0.1 查看。

Apache 2.4 有不同的规则,而不是老式的“允许命令”

您可以测试一下这个看看它是否有效:

<RequireAll>
Require host address #Change as necessary
Require ip ip.address #Change as necessary
</RequireAll>

IE:

<RequireAll>
Require all granted
Require not ip 10.252.46.165 # This denies IPs
</RequireAll>

最后,如果这些都不起作用,那么请检查您的 httpd 日志文件,它们是您的最后手段...好吧...谷歌是..

答案2

我遇到了同样的问题,但是是在我为测试而制作的 vagrant VM 上。我如何解决它:

  1. 编辑/etc/hosts并添加您的服务器的主机名(以便 nginx 将其视为完全合格的域名)。
  2. 跑步chef-server-ctl 重新配置
  3. 跑步chef-server-ctl 状态确保所有进程都在运行(没有进程处于关闭状态。如果有一个进程处于关闭状态,请尝试运行chef-server-ctl 重新启动)。
  4. 运行你的chef-server-ctl 用户创建...再次命令。

相关内容