CentOS 7 の ホスト名

Linux

もう世間ではCentOS 8がリリースされていて今更感があるのですが、CentOS 7のホスト名について勉強になったのでメモを残しておきます。

ちょっと昔話。

以前職場でSun OSだったかSolarisだったかのインストールを業者に依頼した際に、ホスト名をどうするのかって話になりました。既にインストール担当者が目の前に来ているので早々に決めなくてはなりません。

ホスト名ぐらい後からいくらでも変えられるだろうと軽い気持ちで担当者に「ホスト名を変えるときはどうするの?」って聞いてみました。

するとちょっと困った様子を見せた後、「インストールし直しになります」と。

いやいやいくらなんでもそんな事はないだろうと。

まぁほんとにそうだったのか、なんらかの都合があったのかまでは今となってはわかりませんが、かなり衝撃的な出来事でした。

/etc/hostname

ホスト名を変更するならこのファイルを変えればいいだろうと思っていたのですが、CentOS 7では直接変更するのではなくコマンドによる変更になっていました。

hostnamectl コマンド

直接hostnameファイルを変更するのではなく、コマンドによる操作になりました。

設定ファイルを直接操作するのは何らかの問題が発生した時に困ったことになりそうですし、プログラムで設定を操作する際に個別にプログラミングする事になってしまいそうですので、標準コマンドを介した操作になるのはいい事だと思います。

hostnameの表示

hostnamectlコマンドのstatusオプションで表示されます。

$ sudo hostnamectl status

hostname以外にはOSのバージョンなども出力されます。

statusは省略できますので、実際に使うときにはコマンドだけになりそうですね。

$ sudo hostnamectl

hostnameの変更

$ sudo hostnamectl set-hostname <hostname.example.com>

3つのhostname

hostnamectlで出力されるホスト名には2種類ある事に気がつきました。実際には3種類のホスト名が使われています。

  • static
  • transient
  • pretty

static hostname

このホスト名は/etc/hostnameに保存されています。基本的にはこのホスト名を使えば良さそうですが、

transient hostname

直訳すれば”一時的なホスト名”とでもいうのでしょうか。カーネルに保存されているホスト名だそうです。自身のホスト名をDNS逆引きして求めているのでしょうか、static hostnameがlocalhost.localdomainであってもDNSで設定したホスト名が設定されていました。

bashのプロンプトで使われるホスト名もこの値です。

つまり、static hostnameは設定しなくても困らない感じです。

staticとtransientの使い分けはどのようにするのかちょっと気になります。

pretty hostname

これはなんでしょう?

UTF-8で設定できる自由形式のホスト名らしいのですが、従来のホスト名ではなくもっと人に優しい名前で表示したいときに用いるのでしょうか。ちょっと心当たりがありません。

しばらくは触らなくてもいいかも。

その他

linuxというかUNIXのコマンドは変に短縮された名前とか出所不明の名前とか(catとかpwdとか)が使われていることが多いと思っていましたが、最近のコマンドは多少長くてもわかりやすい名前が採用されているのでしょうか。

わかりやすくて良い事だと思いますが、なんかマニアックさが減ってしまう感じがしますね。

コメント

タイトルとURLをコピーしました