Virtualminで再起動後にRe-Check Configurationを行うと毎回発生するエラーを対策

Virtualminで再起動後にRe-Check Configurationを行うと毎回発生するエラーを対策 サーバー

Virtualminでサーバ管理をしていて、設定変更などの確認時にRe-Check Configuration(Checking Configuration)を行うときに、頻繁に発生するエラーがこれ。

VirtualminのRe-Check Configurationエラー

ちなみに再起動をかけたあとの一度目のRe-Check Configurationではこのエラーが必ず発生する。

サーバー会社によっても違うが、VPSを契約してVirtualminを利用しているときに起こる現象です。(自分の経験ではさくらのVPSでは未確認。conohaのVPSでは発生を確認)

以下がエラーの全文です。

この問題を対策する。

※動作確認環境
CentOS Linux 7.9

症状と一時的な回避方法

この画面が出たらエラー表示の中の「list of DNS servers」をクリックし、「DNSクライアント」画面の「DNSサーバ」の最下段あたりに「127.0.0.1」を追加して保存ボタンをクリックすればRe-Check Configurationが行える。
※「変更を適用する」ボタンを押さないのがポイント。(押すとリセットされてしまう)

一時的な回避方法

エラーが出た際は「list of DNS servers」をクリック。

「list of DNS servers」をクリックし

「DNSサーバ」に「127.0.0.1」と入力し「保存」ボタンをクリック。

DNSさーばに「127.0.0.1」を追加

「変更を適用する」ボタンを押さずにメニューの「Re-Check Configuration」をクリックする。

「Re-Check Configuration」をクリック

これで正常にRe-Check Configuration(Checking Configuration)が行えます。

Re-Check Configuration(Checking Configuration)完了

問題点

しかし、サーバーの再起動がかかると入力した項目がリセットされてしまいもう一度「DNSクライアント」画面に127.0.0.1を入力することになる。

この対策として、

/etc/resolv.conf

の末尾に以下の一行

↑これを追加すればよいという情報があるが、ここで追加したネームサーバー情報もサーバの再起動でリセットされてしまう。

/var/log/messages を確認してみたところ、NetworkManagerが /etc/resolv.conf を書き換えている可能性が濃厚。

ネットワークまわりの設定を弄れば resolv.conf のリセットが回避できそうではあるが、できれば不要なカスタマイズは加えたくない。

そんな時の簡単な対策方法を以下で紹介します。

対策方法

CentOS 6などであれば、サーバ起動時に実行される「/etc/rc.d/rc.local」にvi等で、

↑この一行書き込んで実行させるという手もあるが、CentOS 7なので今回はsystemdを利用してサクッと自前でサービスを作ります。

今回作成する自作サービスの内容

  • サービス名は「echo-ns.service」とする。
  • サービス内容はNetworkManagerが /etc/resolv.conf を書き換えた後にシェルスクリプト(echo-nameserver.sh)を実行する処理とする。
  • シェルスクリプト(echo-nameserver.sh)は「echo nameserver 127.0.0.1 >> /etc/resolv.conf」を実行して resolv.conf に「nameserver 127.0.0.1」の一行を追加する。

サービス作成

■まずシェルスクリプト用のディレクトリを作る

■シェルスクリプト作成

echoの処理の前にsleep 15sで念のために15秒待機させています。(NetworkManagerによるresolv.conf書き換え処理よりechoの実行を確実に遅くするため。)

■実行権限付与

■サービスを作る

■サービスを反映

■自動起動を設定

以上で完了です。
これで再起動しても毎回 /etc/resolv.conf に「nameserver 127.0.0.1」の一行が追加されます。

再起動の際に毎回リセットされてしまうのなら、起動時に毎回書き込めばよいという簡単な対策方法ですが、これで少し快適になりました。

systemdでの自前サービス作成は今回の件だけではなくアイデア次第で他のちょっとしたことにも色々と使えますね。

以上で解決です。

タイトルとURLをコピーしました