モヒカンは正義

プログラマー風林火山で言う「風のエンジニア」になりたい(比較的)若者Webエンジニアの備忘録

インスタンスが再起動するとホスト名の設定がリセットされる原因と対策

症状

ConoHa のVPSで /etc/hostname へホスト名を書いても、インスタンスが再起動すると初期値へ戻っている。

原因

インスタンスの初期化に使われている cloud-init というソフトウェアの「ホスト名を変更する機能」が有効になっているため。

なので、ConoHaのVPS特有の問題という訳ではない。

対策

シンプルに、「ホスト名を上書きする」という設定を無効にすれば良い。

Modules — Cloud-Init 18.2 documentation

This module will update the system hostname and fqdn. If preserve_hostname is set, then the hostname will not be altered.

設定ファイルは /etc/cloud/cloud.cfg にある。

$ ls -al /etc/cloud/
合計 24
drwxr-xr-x   4 root root 4096  5月 10 23:48 .
drwxr-xr-x 107 root root 4096  5月 30 23:14 ..
-rw-r--r--   1 root root 3100  5月 10 23:01 cloud.cfg
drwxr-xr-x   2 root root 4096  5月 10 22:54 cloud.cfg.d
-rw-r--r--   1 root root  447 12月 27  2016 cloud.cfg.dpkg-old
drwxr-xr-x   2 root root 4096  5月 10 22:54 templates

今回検証に使った Ubuntu 16.04.4 LTS では、documentに記載の通り

preserve_hostname: false

となっている行を

preserve_hostname: true

とすると、確かに再起動してもホスト名が勝手に変わることは無くなった。

ヤッタネ