如何在 Openstack Heat 模板中使用带句号的主机名?
How do I have hostnames with full stop in Openstack Heat templates?
我试图将主机名设置为服务器的完整 DNS 名称,但如果我包含句号,它似乎会从末尾被截断。
这是我设置主机名的方式:
properties:
name: sample-name.domain.com
但是,这给出了 sample-name
的主机名。全名正确显示在实例列表中。
我查看了 /var/log/cloud-init.log,发现主机名设置为 "sample-name",无论您是将名称设置为 "sample-name.domain.com" 还是 "sample-name"属性。
因此,我们可以在 heat 模板中使用 "user_data" 设置主机名,如下所示:
user_data:
#!/bin/bash
sudo bash -c "echo 'sample-name.domain.com' > /etc/hostname"
sudo bash -c "hostname sample-name.domain.com"
这是我使用的整体解决方案,基于@Tejaswi 的:
user_data:
#!/bin/bash -v
sudo echo "127.0.0.1 sample-name.domain.com" >> /etc/hosts
sudo hostname sample-name.domain.com
sudo echo sample-name.domain.com > /etc/hostname
sudo sed -i 's/preserve_hostname: false/preserve_hostname: true/g' /etc/cloud/cloud.cfg
我还更新了 /etc/hosts
文件,并启用了 preserve_hostname
cloud-init 属性,这样它就不会在每次重启时重置。
我试图将主机名设置为服务器的完整 DNS 名称,但如果我包含句号,它似乎会从末尾被截断。
这是我设置主机名的方式:
properties:
name: sample-name.domain.com
但是,这给出了 sample-name
的主机名。全名正确显示在实例列表中。
我查看了 /var/log/cloud-init.log,发现主机名设置为 "sample-name",无论您是将名称设置为 "sample-name.domain.com" 还是 "sample-name"属性。
因此,我们可以在 heat 模板中使用 "user_data" 设置主机名,如下所示:
user_data:
#!/bin/bash
sudo bash -c "echo 'sample-name.domain.com' > /etc/hostname"
sudo bash -c "hostname sample-name.domain.com"
这是我使用的整体解决方案,基于@Tejaswi 的:
user_data:
#!/bin/bash -v
sudo echo "127.0.0.1 sample-name.domain.com" >> /etc/hosts
sudo hostname sample-name.domain.com
sudo echo sample-name.domain.com > /etc/hostname
sudo sed -i 's/preserve_hostname: false/preserve_hostname: true/g' /etc/cloud/cloud.cfg
我还更新了 /etc/hosts
文件,并启用了 preserve_hostname
cloud-init 属性,这样它就不会在每次重启时重置。