VultrのVPSでDHCPで割り当てられるDNSリゾルバの動作が怪しいので、8.8.8.8
(Google Public DNS)をフォールバックとして利用します。
ポイント
RancherOSの/etc/resolv.conf
はシステムDockerのnetworkコンテナ内部でdhcpcdが自動生成しています。よって、networkコンテナ内に/etc/resolv.conf.tail
を置くことでdhcpcdの自動生成時に取り込まれ、生成された/etc/resolv.conf
をホストがbindして参照します。
手順
RancherOSなのでros config set ~
とするか、cloud-config.yml
を書いてros config merge -i cloud-config.yml
で取り込みます。こうしないとOS再起動時に消滅してしまいます。今回はwrite_filesでファイルを登録するので、後者で行ったほうが良いです。
hostname: xxxxxx
rancher: xxxxx
...(snip)...
write_files:
- container: network
path: /etc/resolv.conf.tail
permissions: "0644"
owner: root
content: |
nameserver 8.8.8.8
/etc/resolv.conf.tail
はnetworkコンテナ内に置かなくてはならないので、container: network
の指定が必要です。
このファイルをRancherOSに取り込み、networkコンテナを再起動すると/etc/resolv.conf
の内容が差し替えられます。
$ sudo ros config merge -i cloud-config.yml
$ sudo system-docker restart network
以上です。