RedHat (Cent OS)の仮想マシンでホスト名を変更する方法
こんにちは。Azure サポートチームの川瀬です。
いつも当ブログをご覧いただきまして、ありがとうございます。
Azure では Linux OS もマーケットプレースで提供されており、Linux OSをお使いの方もいらっしゃるかと思います。
今回はその Linux OS のホスト名の変更方法についてご案内したいと思います。
RedHat (Cent OS)の仮想マシンでホスト名の規定について
Azure 用のエージェントをインストールしている場合、RedHat または Cent OS でホスト名は、エージェントにより監視・管理されています。このホスト名は既定では小文字に設定されます。
その為、ポータルで大文字のホスト名を指定したり、Linux OS 内部からホスト名を小文字から大文字に指定してもホスト名が小文字のまま指定が反映されないことがございます。
DNS の名前解決の際にはホスト名の大文字小文字は区別されませんので、ホスト名の大文字指定が反映されないことでの実害はございませんが、設計時のパラメータ シートどおりの構成としたい場合や、他のアプリケーションのとの兼ね合いで、ホスト名の大文字、小文字をきちんと区別されたいお客様は以下の手順をご参考にしていただければと思います。
RedHat (Cent OS)の仮想マシンでホスト名を変更する手順
ホスト名を大文字に変更したい場合には、/etc/waagent.conf の記述を一部変更してから、コマンドにてホスト名の変更を行う必要があります。それでは、RedHat の場合を例に実際にその手順を以下にご紹介しましょう。
# waagent を停止
$ sudo systemctl stop waagent
# waagent.conf の現在の記述を確認
$ grep Provisioning.MonitorHostName /etc/waagent.conf
Provisioning.MonitorHostName=y
デフォルトでは "y” になっています。
#Provisioning.MonitorHostNameの値を”n”に変更
$ sudo sed -i 's/Provisioning.MonitorHostName=y/Provisioning.MonitorHostName=n/g' /etc/waagent.conf
#waagent.conf の記述が変更されたことを確認
$ grep Provisioning.MonitorHostName /etc/waagent.conf
Provisioning.MonitorHostName=n
になっていれば OK です。
#ホスト名を指定
$ sudo hostnamectl set-hostname --static HOSTNAME
#waagent を開始
sudo systemctl start waagent
#ホストネームを確認
$ hostname
注意:waagent の更新について
Linux エージェント (waagent) は自動的にアップデートされますが、既存の waagent をアップデートする場合は
/etc/waagent.conf の記述は変更されずそのまま引き継がれますので、大文字にしたホスト名が小文字に戻ってしまうということはありません。
ですが、手動で一度 waagent をアンインストールしてから再度インストールする場合には、/etc/waagent.conf が入れ替わりますので大文字にしたホスト名が小文字に戻ると行った事象が発生いたします。ご注意ください。
参考リンク
Azure Linux エージェントについては以下のドキュメントにて詳細をご案内しております。