簡體   English   中英

在AWS OpsWorks(Chef)中更改主機名

[英]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將執行以下操作:

  1. 運行內置的安裝程序配方。

  2. 運行任何自定義安裝程序配方。

  3. 運行內置的“部署”配方。

  4. 運行任何自定義的部署配方。

我正在自定義“部署”配方中運行該配方,因此它應該是最后運行的東西。 不知道為什么/如何將其重置為原始主機名。

謝謝!

我想到了。 您假設將覆蓋AWS提供的Chef中的默認模板。

使用自定義模板擴展AWS OpsWorks配置文件

因此,在我的食譜中,我創建了一個名為:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM