1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【OCI】hostsファイルが巻き戻ってしまう

Last updated at Posted at 2024-09-30

はじめに

OCI(Oracle Cloud Infrastructure)でComputeサーバ(OracleLinux)を立てていろいろと触っていたところ、
hostsファイル(/etc/hosts)に追記した内容が消えていることに気が付きました。
同じ現象でハマらないようメモを残しておきます。

現象

dummyserver01という名前のサーバを作成し、「dummyserver01.infomart.co.jp」という名前でも内部解決できるようhostsを設定しました。

  • 変更後のhosts
172.16.xx.2 他のエントリ
172.16.xx.3 他のエントリ

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.xx.1 dummyserver01.xxxxx.yyyyy.oraclevcn.com dummyserver01 dummyserver01.infomart.co.jp
  • しばらく放置した後のhosts
172.16.xx.2 他のエントリ
172.16.xx.3 他のエントリ

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.xx.1 dummyserver01.xxxxx.yyyyy.oraclevcn.com dummyserver01

上記のように、他サーバのエントリは変わっていないのですが、
自サーバのエントリに追記した「dummyserver01.infomart.co.jp」が消えてしまっています。
hostsの更新時刻も触った覚えのない時刻になっていました。

変更できないわけではなく、いったんは名前解決できるもののいつの間にか何らかのプロセスによって勝手にロールバックされてしまっているようです。

解決

/etc/oci-hostname.conf の仕組みによりhostsファイルが上書きされるという仕様だからでした。

DHCPオプションの処理

/etc/hostsファイルに加えた変更は、DHCPリースの更新やインスタンスの再起動のたびに上書きされます。変更内容をLinuxまたはCentOSインスタンスの/etc/hostsファイルに永続化するには、/etc/oci-hostname.confに次の行を追加します: PRESERVE_HOSTINFO=2。/etc/oci-hostname.confファイルが存在しない場合は作成します。

では現状のoci-hostname.confを見てみましょう。

/etc/oci-hostname.conf
# This configuration file controls the hostname persistence behavior for Oracle Linux
# compute instance on Oracle Cloud Infrastructure (formerly Baremetal Cloud Services)
# Set PRESERVE_HOSTINFO to one of the following values
#   0 -- default behavior to update hostname, /etc/hosts and /etc/resolv.conf to
#        reflect the hostname set during instance creation from the metadata service
#   1 -- preserve user configured hostname across reboots; update /etc/hosts and
#           /etc/resolv.conf from the metadata service
#   2 -- preserve user configured hostname across instance reboots; no custom
#        changes to /etc/hosts and /etc/resolv.conf from the metadata service,
#        but dhclient will still overwrite /etc/resolv.conf
#   3 -- preserve hostname and /etc/hosts entries across instance reboots;
#        update /etc/resolv.conf from instance metadata service
PRESERVE_HOSTINFO=0

ファイルを開くとコメントにPRESERVE_HOSTINFOの値の意味が書いてありました。
まとめると以下のことのようです。

ホスト名 /etc/hosts /etc/resolv.conf 備考
0 上書き 上書き 上書き デフォルト
1 変更なし 上書き 上書き
2 変更なし 変更なし 変更なし 1 ドキュメントのおすすめ
3 変更なし 変更なし 上書き

マニュアルの記載に従い、 /etc/oci-hostname.confPRESERVE_HOSTINFO=2 にすると
hostsファイルが巻き戻る現象は治まりました。

設定変更後は再起動などは必要ありませんでした。

  1. dhclientの働きによって上書きされることがある

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?