[英]Change hostname in AWS OpsWorks (Chef)
在AWS OpsWorks中,我正在使用此社区主机名食谱。 设置我的主机名以将域附加到该主机名。
原始FQDN: apple-pie.localdomain
node.default["set_fqdn"] = "*.example.com"
include_recipe 'hostname'
对FQDN的更改: apple-pie.localdomain.example.com
但是,大约10分钟后,主机名将恢复为原始主机名,而没有附加我的域。
我检查了OpsWorks生命周期:
新实例完成启动后,AWS OpsWorks将执行以下操作:
运行内置的安装程序配方。
运行任何自定义安装程序配方。
运行内置的“部署”配方。
运行任何自定义的部署配方。
我正在自定义“部署”配方中运行该配方,因此它应该是最后运行的东西。 不知道为什么/如何将其重置为原始主机名。
谢谢!
我想到了。 您假设将覆盖AWS提供的Chef中的默认模板。
因此,在我的食谱中,我创建了一个名为:
opsworks_stack_state_sync /模板/默认/ 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 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.