Vagrantでネットワーク設定を変えても反映されなかった原因
veeweeで作ったオレオレCentOS5 boxのネットワーク設定をhost-onlyに変えてreloadしてみたらエラーが出てinterfaceが上がらなかった。他のboxだと問題ないので、OS側で何か設定し忘れたのかなーと調べてみたら余計な設定が入っていたというお話。
Vagrantfile
Vagrant.configure("2") do |config| ・・・ config.vm.network :private_network, ip: "192.168.33.10" ・・・ end
実行結果
$ vagrant reload ・・・ The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! cat /tmp/vagrant-ifcfg-eth1 > /etc/sysconfig/network-scripts/ifcfg-eth1
このエラーだけ見ても原因がさっぱり分からない。
LOGレベルをDEBUGにしてもう一度reloadしてみると
$ VAGRANT_LOG=DEBUG vagrant reload ・・・ INFO ssh: Execute: touch /etc/sysconfig/network-scripts/ifcfg-eth1 (sudo=true) DEBUG ssh: stdout: DEBUG ssh: Exit status: 0 DEBUG ssh: Re-using SSH connection. INFO ssh: Execute: sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' /etc/sysconfig/network-scripts/ifcfg-eth1 > /tmp/vagrant-ifcfg-eth1 (sudo=true) DEBUG ssh: stdout: DEBUG ssh: Exit status: 0 DEBUG ssh: Re-using SSH connection. INFO ssh: Execute: cat /tmp/vagrant-ifcfg-eth1 > /etc/sysconfig/network-scripts/ifcfg-eth1 (sudo=true) DEBUG ssh: stderr: bash: line 2: /etc/sysconfig/network-scripts/ifcfg-eth1: cannot overwrite existing file DEBUG ssh: stdout: DEBUG ssh: Exit status: 1 ERROR warden: Error occurred: The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! ・・・
>
で上書きが出来ずにエラーとなっていた。
あー・・・これはよく見るやつだ。と /root/.bashrc
を見てみるとしっかりと
set -o noclobber
と書いてあったので、これをコメントアウトして解決。
ちなみにこの設定、デフォルトでは入っていないんだけど、いつもセットアップに使っているスクリプトで追記されるようになっていたのでこんなことに。うっかりミスを防ぐためにはいいんだけど、人の作ったスクリプト実行するときはちょくちょく弊害となる。