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