2013-10-25 54 views
3

我正在使用托管的Chef一段时间。想探索开源厨师服务器。因此我试图在EC2实例上设置Chef-Server 11。在EC2实例上安装Chef-Server 11

我有厨师服务器运行,我可以访问Web GUI的相同。我在另一个ec2实例上配置了主厨工作站,该实例工作正常。

问题:我无法上传任何食谱。 我得到以下错误,当我尝试上传菜谱:

# knife cookbook upload getting-started 
Uploading getting-started [0.4.0] 
/opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in `initialize': Connection refused - connect(2) (Errno::ECONNREFUSED) 

然而,knife其他list命令工作正常。

我做我的家庭作业撞到下面的链接:

http://www.opscode.com/blog/2013/03/11/chef-11-server-up-and-running/

http://www.curvve.com/blog/servers/2013/script-to-configure-and-set-your-hostname-and-fqdn-on-ec2-instances/

所以,

要提到的是在chef-server需要工作FQDN工作。我将我的公共ec2主机名设置为服务器的主机名,并将其设置为/etc/hosts。重新启动实例。再次运行chef-server-ctl reconfigure。仍然面临同样的错误。

问题:如何计算出厨师服务器工作的EC2实例的FQDN部分?如果任何人已经成功在EC2上设置厨师服务器并且能够上传食谱,那么请分享您的FQDN锻炼步骤。

+0

你是如何在亚马逊linux上安装厨师服务器的,你选择了哪种操作系统下载?我没有得到它运行 –

回答

1

这就是我如何得到它的工作。在/etc/sysconfig/networkservice network restart更新了我的ec2实例(chef-server)的公共DNS名称。现在我可以上传食谱了。

需要考虑弹性IP作为我的厨师服务器的潜在选择。

1

编辑/etc/chef-server/chef-server.rb添加以下代码行(创建的文件,如果不存在的话):

bookshelf["vip"] = node["ipaddress"] 
bookshelf["url"] = "https://#{node["ipaddress"]}" 
erchef['s3_url_ttl'] = 3600 

前两行会的厨师服务器URL指向本机的IP而第三个将解决当厨师服务器在EC2上时,显然总是存在超时问题。

3

我当时很难过,但这个解决方案很有效!

编辑/etc/chef-server/chef-server.rb添加以下代码行(创建文件,如果不存在的话):

server_name = "THE PUBLIC IP OF YOUR INSTANCE" 
api_fqdn server_name 
nginx['url'] = "https://#{server_name}" 
nginx['server_name'] = server_name 
lb['fqdn'] = server_name 
bookshelf['vip'] = server_name 

,我发现这里的解决方案 http://sahebjade.blogspot.com/2013/05/check-your-knife-configuration-and.html

0

我想扩大一些答案,因为他们没有给出完整的图片。这适用于厨师11(希望厨师12是更聪明)

在我来说,我滚了一个高手了下VPC#1给它就像一个内部地址此

IP-10-0-0- 10.ec2.internal

因为我最初只是在玩VPC,所以我错误地配置了一些我需要的东西,所以我不得不放弃它,并且我创建了一个新的方案。值得庆幸的是,我能够拍摄这位老厨师大师并在新的VPC下展示它,但是我发现我再也无法登录厨师了。我花了一些时间进行挖掘,但是在我的/var/log/chef-server/chef-server-webui/current日志中发现安装已隐藏到旧主机名中,并将其设置为......的所有内容。这引起了内部主机名更改后问题现在

2014-12-24_16:19:09.46680 SocketError: Error connecting to https://ip-10-0-0-10.ec2.internal/users/admin - getaddrinfo: Name or service not known

,到OP答案

需要考虑弹性IP为我的厨师服务器潜在的选择

在我的情况是,我只是给CloudFlare添加了一个CNAME,并将其设置为我的永久地址。由于我可以将CloudFlare设置为该地址上的低TTL,因此可以轻松地在IP更改(我不需要Elastic IP,而只是配置它)之间移动它。这样,我可以告诉厨师总是寻找相同的URL,而不用担心EIP。我们不得不更新厨师。我不知道什么改变了(这是11.16.4),但我发现配置生活在/var/opt/chef-server/chef-server-webui/etc/chefserver.rb而不是其他一些列表chef-server.rb的答案。不知道这是不是YMMV的事情。 我改变了对这个文件

# Environment specific application configuration. 
# These values override the ones set in 'RAILS_ROOT/config/application.rb' 
#config.chef_server_url = "https://ip-10-0-0-10.ec2.internal" 
config.chef_server_url = "https://chef.mydomain.com" 

底部下面我也改变/var/opt/chef-server/nginx/etc/chef_https_lb.conf

server_name chef.mydomain.com; 

最后我重新启动厨师

chef-server-ctl restart 

这似乎已经完成了帽子戏法。登录再次工作。