Amazon ec2 在EC2实例上安装Chef服务器11

Amazon ec2 在EC2实例上安装Chef服务器11,amazon-ec2,chef-infra,fqdn,Amazon Ec2,Chef Infra,Fqdn,我使用主厨已经有一段时间了。想探索一下开源厨师服务器。因此,我试图在EC2实例上设置我的Chef服务器11 我有厨师服务器运行,我可以访问web GUI的相同。我在另一个ec2实例上配置了chef工作站,该实例也运行良好 问题:我无法上传任何食谱。 当我尝试上载烹饪书时,出现以下错误: # knife cookbook upload getting-started Uploading getting-started [0.4.0] /opt/chef/embedded/lib/ruby/1.9.

我使用主厨已经有一段时间了。想探索一下开源厨师服务器。因此,我试图在EC2实例上设置我的Chef服务器11

我有厨师服务器运行,我可以访问web GUI的相同。我在另一个ec2实例上配置了chef工作站,该实例也运行良好

问题:我无法上传任何食谱。 当我尝试上载烹饪书时,出现以下错误:

# 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)
但是,
的其他
列表
命令工作正常

我做了我的家庭作业,并在下面的链接上点击:

所以

需要指出的是,
chef服务器
需要一个工作FQDN才能工作。我将my public ec2主机名设置为服务器的主机名,并在
/etc/hosts
中进行设置。重新启动实例。再次运行chef服务器ctl重新配置。仍然面临着同样的错误


问题:如何确定EC2实例的FQDN部分,以便chef server正常工作?如果有人在EC2上成功设置了chef server,并且能够上传烹饪书,那么请分享您的FQDN训练步骤

我就是这样让它工作的。在
/etc/sysconfig/network
服务网络重新启动中更新了我的ec2实例(chef服务器)的公共DNS名称。现在我可以上传食谱了


需要考虑弹性IP作为my chef server的潜在选项。

编辑
/etc/chef server/chef server.rb
并添加以下行(如果文件不存在,则创建该文件):


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

我很难做到这一点,但这个解决方案奏效了

编辑/etc/chef-server/chef-server.rb并添加以下行(如果文件不存在,则创建该文件):

我在这里找到了解决办法

我想对答案进行一些扩展,因为它们不能提供完整的图片。这适用于厨师长11(希望厨师长12更聪明)

在我的例子中,我把一个master放在VPC#1下,给了它一个这样的内部地址

ip-10-0-0-10.ec2.内部

因为我最初只是在玩VPC,我对一些我需要的东西进行了错误的配置,所以我不得不放弃它,我创建了一个新的方案。谢天谢地,我能够抓拍到老厨师长的照片并将其置于新的VPC下,但我发现我无法再登录到厨师了。这需要一些挖掘,但我在我的
/var/log/chef server/chef server webui/current
日志中发现,安装程序已将旧主机名隐藏,并将其设置为。。。一切。这会在内部主机名更改后导致问题

2014-12-24\u 16:19:09.46680插座错误:连接到https://ip-10-0-0-10.ec2.internal/users/admin -getaddrinfo:名称或服务未知

现在,我来回答问题

需要考虑弹性IP作为我的chef服务器的潜在选项

在我的例子中,我只是向CloudFlare添加了一个
CNAME
,并将其设置为我的永久地址。由于我可以在该地址上将CloudFlare设置为较低的TTL,因此可以很容易地在IP更改之间移动它(在配置它时,我不需要弹性IP)。这样我就可以告诉Chef总是寻找相同的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

这似乎成功了。登录再次起作用。

您是如何在amazon linux上安装chef server的?您选择了哪种操作系统进行下载?我无法让它运行
server_name chef.mydomain.com;
chef-server-ctl restart