web-dev-qa-db-ja.com

DHCPがAWSのCentOS7ボックスで構成するホスト名を上書きするにはどうすればよいですか?

タイトルはほぼすべてを語っています。 CentOS 7を実行しているEC2にVMがあります。これは、EC2の要件のように思われるDHCPを使用します。DHCPは、再試行時に何をしようともホスト名を上書きし続けます。列挙しません。それ、しかし私はここでほとんどすべての提案を試みました: RHEL5/CentOS/Amazon LinuxでDHCPホスト名を上書きする とGoogle検索が表示された他のいくつかのサイトで見つかったもの。特定のOSバージョンまたはAWS/EC2環境であるが、ホスト名を変更して再起動後も維持することができない場合。/etc/rc.d/rc.localを介してブルートフォースすることもできます( "/ bin/hostnamectl set -hotname foo.bar.baz "は機能しませんでした。他のAWS/EC2ユーザーがこれを理解していないとは信じられません。助けてください。

更新:これも機能しません: http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/set-hostname.html つまり、AWSのボックスにDNS Aレコードを追加しますRoute53(およびそれが機能することの確認)、および/ etc/sysconfig/networkでHOSTNAME = foo.bar.bazを設定する(再起動後にチェックする)も無駄です。

更新2:同様の質問が Fedora 2 に対して回答されました。そこで受け入れられたソリューションには、異なる方法でのcloud-initの再構成も含まれていました。また、その質問/解決策が他のディストリビューションに適用されることも明確ではありませんでした。したがって、私の質問はおそらくCentOSを実行し、その方法で検索する他の人に残すべきだと思います(そうです、FedoraとCentOSは兄弟であることを知っていますが、ソリューションを検索するときに、すべての同義語を誰もがググるわけではありません)。

7
JJC

よし。私はおそらくこの問題に合計5時間費やしてから、回答にたどり着きました。 cloud-initをアンインストールするという@Sirexの提案が手掛かりでした。基本的に、cloud-initは、AMI LinuxやCentOSを含むほとんどのEC2イメージ(AMI)に組み込まれているサービスです。このシステムは多くのことを行い(google it)、おそらく特定のプロビジョニングとメンテナンスfooに役立つでしょう。したがって、私は単にそれを無効にすることをためらっています。ただし、EC2ホスト名を設定しているようにも見えます。したがって、優先ホスト名で上書きするには、次のようにします。

(1) 99 _... cfg(私は99_hostname.cfgという名前です)のような名前のファイルを作成し、それに次の内容を書き込みます。

#cloud-config
hostname: foo
fqdn: foo.bar.baz

もちろん、「foo」と「foo.bar.baz」をホスト名と完全修飾ドメイン名で置き換えます。

(2)このファイルを/etc/cloud/cloud.cfg.d/99_hostname.cfgに配置します

(3)次のコマンドを使用して、ファイルの権限/所有者/ selinuxコンテキスト(SELinuxを適用している場合)が適切に設定されていることを確認します。

Sudo su -
cd /etc/cloud/cloud.cfg.d/
chown root: 99_hostname.cfg
chmod 644 99_hostname.cfg
chcon system_u:object_r:etc_t:s0 99_hostname.cfg

(4) VMを再起動すると、新しいホスト名が設定されます。 bashプロンプトが信頼できない場合は、たとえば次のいずれかを実行して、これを確認できます。

hostnamectl

または

cat /etc/hostname
7
JJC

cloud-initをアンインストールします。

これは私を運転したmental初めて:-)

Cloud-initにホスト名を(タグなどから)期待どおりに設定させる方法を検討する時間をまだ探しています-まだ自分ではわかりません。

2
Sirex