ああ、懐かしい時代ですね。Ubuntuサーバーのホスト名は、/etc/hostnameファイルを編集するだけで変更できました。それはUbuntu 16.04のずっと昔の話で、当時は物事がもっとシンプルでした。しかし今、Ubuntuは進化の名の下に、管理者が長年慣れ親しんできた多くの設定を変えました。これは非常にイライラさせられるもので、特にデータセンターでUbuntuに依存している場合はなおさらです。長年プラットフォームを使い続けていると、突然、オペレーティングシステムの管理方法に数々の変更が加えられるのです。そうした変更の一つ(形式的にも機能的にもかなり劇的なものでした)は、静的IPアドレスを手動で設定する方法でした。
参照: Ubuntu Server 18.04 で静的 IP アドレスを設定する方法 (TechRepublic)
変更はそれだけではありません。実は、Ubuntu のもう一つの非常に重要な設定にもちょっとした進化がありました。その変更とは、ホスト名です。なぜだろうと途方に暮れる前に言っておきますが、この特定の変更は IP アドレスほど劇的なものではありません。実際、Ubuntu 18.04 のホスト名の設定は、表面的には同じです。ただし、ある非常に重要な問題に対処しないと、ホスト名に加えた変更は、サーバーを再起動した瞬間に自動的に元に戻ります。私は、Ubuntu Server の最新リリースでサーバーをセットアップしようとしたときに、この問題に気付きました。/etc/hostname を何度変更しても、再起動すると変更は元に戻ってしまいました。頭を悩ませた後、ようやく原因を突き止めました。
私はあなたの抜け毛を防ぐお手伝いをします。
ホスト名の設定
まず、ホスト名を設定しましょう。hostnameコマンドを実行すると、サーバーのホスト名が表示されます(図A)。
図A
ホスト名を変更するには、 sudo nano /etc/hostnameコマンドを使用して必要なファイルを開き、編集します。必要に応じてホスト名を変更し、ファイルを保存して閉じます。
次に、 sudo nano /etc/hostコマンドでhostsファイルを開きます。古いホスト名(例:localhost)を新しいホスト名に変更します。ファイルを保存して閉じます。マシンを再起動します。
それはテストでした。
マシンを再起動すると、ホスト名が元の状態に戻っているはずです。なぜでしょうか?これは、特定の設定ファイルにpreserve_hostnameという小さな設定があり、プラットフォームに対して/etc/hostnameに設定されているホスト名を保持するか保持しないかを指定するためです。この変更を行うには、ホスト名( /etc/hostnameと/etc/hosts の両方)を変更し、次のコマンドを実行します。
sudo nano /etc/cloud/cloud.cfg
そのファイルで、次のエントリを探します。
preserve_hostname: no
そのエントリを次のように変更します。
preserve_hostname: yes
ファイルを保存して閉じます。これで、新しく設定したホスト名は再起動後も保持されます。
小さいながらもイライラする変化
preserve_hostname オプションについて理解するまでは、Ubuntu Server のホスト名設定の変更は間違いなく面倒なものになるでしょう。Canonical には、このような変更を行う際には、標準設定ファイルに何らかの指示を出すようにすべきだと提案します。例えば、/etc/hostname に以下の行を追加すればよかったかもしれません。
# In order to preserve an altered hostname, set preserve_hostname to yes in
# /etc/cloud/cloud.cfg
次のLTSリリースがリリースされたら、そのコメントは削除される可能性があります。これは、実装された変更に対する管理者の不満を解消するのに大いに役立つシンプルな指示となるでしょう。