起動時にresolv.confが何者かに上書きされた時に更に上書きをする戦い
                    February 7, 2015
                    
                    
                    
                みんなこういうのはどういう対応しているんだろう
@kenjiskywalker PEERDNS=noを/etc/sysconfig/network-scripts/ifcfg-ethXに書くとか
— TSUNEMATSU Shinya (@tnmt) February 7, 2015
常松先生が一瞬で解決方法を教えてくれました。
ありがとうございます!
resolv.confが圧倒的暴力によって上書きされる場合
対応としてresolv-updateみたいな雑なサービス定義をして、サーバ起動時に実行させるようにした。
ポイントはcloud-initとかそれ系のヤツが実行される前に上書いてもその後に上書きされるのでタイミングが大切。
ここの
# chkconfig: 2345 49 49
49 49の最初の数字が起動時に実行される順番で、後ろの数字が終了時に実行される順番。
$ chkconfig --add resolv-update
とすることで自動に実行されるようになる。
runlevel 3のものを確認したければ/etc/rc3.d/とか見ればわかる。
#!/bin/sh
#
# resolv-update
# create by kenjiskywalker
#
# chkconfig: 2345 49 49
# 
lock_file="/var/lock/subsys/resolv-update"
redis_port="6379"
start()
{
    # lock_fileを生成しないとshutdownの時に実行されない
    touch ${lock_file}
    # 圧倒的暴力によってresolv.confが上書きされていたら更に上書きする
    if [[ -z "`grep 'nameserver 127.0.0.1' /etc/resolv.conf`" ]]
    then
        sed -i '1s/^/nameserver 127.0.0.1\n/' /etc/resolv.conf
    fi
}
stop()
{
    # lock_fileの削除
    rm -r ${lock_file}
}
case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    *)
        echo "Usage: $0 {start|stop}"
    ;;
esac
exit 0
Systemd?はて?