この問題に関する他のすべては時代遅れまたは矛盾しているように見えるので、新しい質問。投票してください:)
Ubuntu 12および14サーバーの標準インストールでは、DNSを変更する方法は、interfacesファイルを編集し、そこにdns-オプションを追加することであると思われます。唯一の問題は、アップタイムが懸念されるサーバーでは、これらの変更を強制的に適用する唯一の方法は、影響を受けるネットワークインターフェイスをifdown/ifup
でバウンスすることです。
DNSの変更セットを作成するために多数のサーバーがあり、この方法でネットワークインターフェイスを切り替えることなく、リゾルバーの構成をまとめて更新する必要があります。また、再起動後に変更が保持されることを確認する必要があります。
問題は、これらのサーバーがすべてinterfaces
ファイルのdns-オプションで構築されていることです。つまり、resolvconf
のhead
またはtail
ファイルを変更すると、再起動すると重複する行が大量に発生します。
プロセスは次のようなものである必要があります。
だから、要約:
interfaces
の行を編集します(インターフェースをリサイクルするには停止が必要です)head
またはtail
ファイルの編集(有効にならず、再起動時に行が重複します)このような変更を有効にする方法はありますか?withoutサービスを中断しますか?理想的には、インターフェイスを切り替えることなく、resolvconfに更新プロセスを強制的に実行させることができます。
resolv.conf
を一貫性のない状態にすることが絶対にできない場合、私がしたことは次のとおりです。
dns-
の/etc/network/interfaces
行から生成されたリゾルバーの「状態」は/var/run/resolvconf/interface/(interfacename).inet
に保存されます-このファイルは切り捨てられました。
同じデータ(search
、nameserver
など、完成したresolv.conf
にあるものと同じものが/etc/resolvconf/resolv.conf.d/tail
にコピーされました(tail
ファイルを作成する必要がありました) )、適切なコメントを追加して、後で来た人が何が起こったかを見ることができるようにします。
/etc/network/interfaces
のdns
行はコメント化されました
最後に、resolvconf -u
を実行して、テールファイルから/etc/resolv.conf
を再生成します
これには次の効果があります。
リゾルバーの設定をネットワークインターフェースから分離する(単一のインターフェースボックスを使用している場合は、不必要に迷惑になります)
リゾルバー設定を単一の目的のテキストファイル(tail
ファイル)に配置する
変更をすぐに有効にする
..そしてそれらを再起動後も持続させる
そして、resolvconf
の通知メカニズムをそのままにして、システム全体の/etc/resolv.conf
を再生成します。
...ダウンタイムなし:D