【问题标题】:Host Chef Server 12 on a purchased domain name在购买的域名上托管 Chef Server 12
【发布时间】:2015-06-04 18:31:32
【问题描述】:

我已经在 Ubuntu 14.04 on AWS EC2 上安装了 chef server,并为其附加了一个弹性 IP。然后我将该 IP 映射到我购买的 DNS 主机。

如果我使用https://mydnsname.com 访问网站,我将获得厨师服务器页面并能够创建组织和所有内容。

我将 chef-starter 包下载到本地系统。

当我执行 $ knife ssl fetch 时,我收到以下错误消息:

连接到主机 mydnsname.com:443
错误:SSL 证书由受信任的机构签署,但对给定的主机名无效
错误:您正在尝试连接到:“mydnsname.com”
错误:服务器的证书属于'ip-172-31-45-242.ec2.internal'*

$ knife ssl fetch给了

警告:来自 mydnsname.com 的证书将被提取并放置在您的trusted_cert 目录(~/chef/chef-repo/.chef/trusted_certs)中。
Knife 无法验证这些证书是否正确。您应该在下载后验证这些证书的真实性。在 ~/chef/chef-repo/.chef/trusted_certs/ip-172-31-45-242_ec2_internal.crt 中添加 ip-172-31-45-242.ec2.internal 的证书
我为我的域名 mydnsname.com 生成了自签名证书并将其放在 /var/opt/opscode/nginx/ca/ 目录*

我已为我的域名 mydnsname.com 生成自签名证书并将其放在/var/opt/opscode/nginx/ca/ 目录中

但我仍然没有成功。

我的 /etc/hosts 文件在服务器上的样子

127.0.0.1 mydnsname.com chef 127.0.0.1 localhost 54.173.215.55 mydnsname.com chef

如何在 AWS EC2 上使用本地机器上的域名和刀配置 Chef 服务器?

【问题讨论】:

    标签: ssl nginx amazon-ec2 chef-infra


    【解决方案1】:

    为此有一些事情要做。 第一个是定义您在chef-server.rb 中使用的名称 api_fqdn 属性,因为它驱动 nginx 配置。

    一些文档here关于chef-server.rb的选项

    该文档并不详尽,但您可以查看 chef-server-ctl reconfigure 使用的厨师服务器食谱中所需的属性。默认值在/opt/chef-server/embedded/cookbooks/chef-server/attributes/default.rb 中(或可见here 只需剥离chef-server.rb 文件中的第一级属性并使用下一个键作为对象)。

    即:

    default['private_chef']['nginx']['server_name'] = node['fqdn'] 将在 chef-server.rb 中被 nginx['server_name'] = "mydnsname.com" 覆盖

    最后,您可以确保在使用 chef-server-ctl show-config 重新配置之前拥有全部属性,这将打印从默认值更改或为您的服务器计算的值。

    【讨论】:

    • 我已经检查过了,我的 chef-server.rb 在 Chef12 中是空的。有一个文件 /etc/opscode/chef-server-running.json 包含所有详细信息。我已经更改了那个文件中的 fqdn,但没有成功
    • 必须创建 chef-server.rb 来定义覆盖值。 chef-server-running.json 顾名思义显示正在运行的实例的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 2020-12-11
    相关资源
    最近更新 更多