LoginSignup
1
2

More than 5 years have passed since last update.

VagrantfileでNetworkManagerを何とかする

Last updated at Posted at 2018-09-18

概要

先程、vagrant upがコケる問題についてという記事を書いたので、
ついでにvagrantのVMでNetworkManagerが邪魔でネットワーク設定がうまいこと行っていない。
という時に私が試している方法を書いてみます。役に立つかはわかりません!

※以下、centos6を想定して書いています。

状況

以下の条件で治る場合に試す価値があるかもしれません。

  • VM接続してもネットワークの設定がうまく出来ていない。
  • systemctlやserviceコマンドでNetworkManagerの状態を確認し、起動している。
  • /etc/sysconfig/network-scripts/ifcfg-〇〇のnm_controlledの値をyesにして、NetworkManagerを再起動すると直る。

原因

vagrantは起動時にifcfg-〇〇を書き換えるので、
その際に nm_controlled が No に設定されてしまう。

Vagrantfileでなんとかする

config.vm.provision "shell", run: "always", inline: <<-SHELL
    nic_path=/etc/sysconfig/network-scripts/ifcfg-eth1
    if grep 'nm_controlled'
    then
      sed -i 's/nm_controlled=no/nm_controlled=yes/g' $nic_path
    else
      echo 'nm_controlled=yes' >> $nic_path
    fi
    service NetworkManager restart
SHELL

※centos7だと nm_controlled はデフォルトで NM_CONTROLLED になっているようなので、上記の書き換えも大文字としてください。

スクリプトを晒すの恥ずかしい。。。けど慣れるまで頑張ります。

2018/9/25追記

どうやら、
Vagrant 1.7.2 + CentOS 7.1.1503 で、private_networkの ip address が消える
や、
Vagrantのprivate_networkをCentOS7.0で設定
等に有るように、VagrantとNetworkManager関連の話は色々合ったようですね。

ただ、私の場合、vagrant1.9辺りを使用していてもnetwork周りがうまく設定されていないことが有ります(治っていそうなものですが...パッチ適用しないとだめなのかな)。

private-ipが振られていなかったり、指定のアドレスとは別のアドレスが振られていたりします。
別のアドレスが振られている場合は、
https://github.com/hashicorp/vagrant/issues/2968 に書いてあったのを後で見つけましたが、)
if down && if up で今の所解決します。

「CentOS6+NetworkManager」
という構成がややこしいのかもしれません(未だにCentOS6を使うことも多いです)。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2