事象
/etc/hosts
ファイルに新たにエントリを追加していたものが、再起動したら消えてしまった。
原因
cloud-initが起動時にテンプレートファイルで上書きしていた。
対応
cloud-initが/etc/hosts
を更新しないように設定する方法がよく出てきますが、今回はテンプレートファイルを修正することで対応しました。
-
/etc/hosts
の中身を見て、テンプレートファイルを特定します。
下記の例では/etc/cloud/templates/hosts.debian.tmpl
となります。$ cat /etc/hosts # Your system has configured 'manage_etc_hosts' as True. # As a result, if you wish for changes to this file to persist # then you will need to either # a.) make changes to the master file in /etc/cloud/templates/hosts.debian.tmpl # b.) change or remove the value of 'manage_etc_hosts' in # /etc/cloud/cloud.cfg or cloud-config from user-data # 127.0.1.1 microk8s-dmz-0.maas microk8s-dmz-0 127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
- テンプレートファイルを修正します。
あとは普通に編集するだけ。$ sudo vim /etc/cloud/templates/hosts.debian.tmpl
これで再起動しても設定が消えなくなりました!