在 AWS OpsWorks 中更改主机名(厨师)

Posted

技术标签:

【中文标题】在 AWS OpsWorks 中更改主机名(厨师)【英文标题】:Change hostname in AWS OpsWorks (Chef) 【发布时间】:2014-10-15 18:44:12 【问题描述】:

在 AWS OpsWorks 中,我正在使用这个社区 hostname 食谱。设置我的主机名以将域附加到它。

原始 FQDN:apple-pie.localdomain

node.default["set_fqdn"] = "*.example.com"
include_recipe 'hostname'

对 FQDN 的更改:apple-pie.localdomain.example.com

但是,大约 10 分钟后,主机名会恢复为原始主机名,而无需附加我的域。

我检查了 OpsWorks 生命周期:

新实例完成启动后,AWS OpsWorks 会执行 以下:

    运行内置的安装程序。

    运行任何自定义设置配方。

    运行内置的 Deploy 配方。

    运行任何自定义部署配方。

我正在我的自定义 Deploy 配方中运行该配方,所以它应该是最后运行的东西。不知道为什么/如何将其重置为原始主机名。

谢谢!

【问题讨论】:

听起来亚马逊正在更改主机名... 【参考方案1】:

我想通了。您假设覆盖 AWS 提供的 Chef 中的默认模板。

Extending AWS OpsWorks Configuration Files Using Custom Templates

所以在我的食谱中,我创建了一个名为:

opsworks_stack_state_sync/templates/default/hosts.erb

添加文件如下所示:

# This file was generated by OpsWorks
# any manual changes will be removed on the next update.

# Set the hostname with proper format, the rest are aliases.
127.0.0.1 localhost localhost.example.com
127.0.1.1 <%= node[:opsworks][:instance][:hostname] %>.example.com <%= node[:opsworks][:instance][:hostname] %>

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

# OpsWorks Layer State
<% seen = [] -%>
<% node[:opsworks][:layers].each do |layer_name, layer_config| -%>
<% layer_config[:instances].each do |instance_name, instance_config| -%>
<% if !seen.include?(instance_name) && instance_config[:private_ip] -%>
<%= Resolv.getaddress(instance_config[:private_ip]) %> <%= instance_name %>
<% if instance_config[:ip] %>
<%= Resolv.getaddress(instance_config[:ip]) %> <%= instance_name %>-ext
<% end %>
<% seen << instance_name %>
<% end -%>
<% end -%>
<% end -%>

这会将您的主机名设置为 apple-pie.example.com

【讨论】:

以上是关于在 AWS OpsWorks 中更改主机名(厨师)的主要内容,如果未能解决你的问题,请参考以下文章

AWS Opsworks 中的 Chef 环境

Opsworks 厨师 12 道菜谱

Opsworks 自定义厨师食谱上的 Codeigniter ci_sessions

Opsworks Chef 无法创建 cron

在 aws opsworks 上升级 node.js

AWS Opsworks:logrotate 它会自动运行吗?