Wpadłem na całkiem eleganckie rozwiązanie, czekając na to, że zostanie ono załatane przez zespół wtyczek vagrant-vmware-workstation.
Ustawiłem włóczęgę, aby ustawić public_network z ustawieniem auto_config na false. (Więc włóczęga nie nadpisuje plik I zmień)
config.vm.network "public_network", auto_config: false
Po to skonfigurować, mogę uruchomić Provisioner powłoki echo do pliku, który zawiera ustawienia dla eth1 (eth0 jest zawsze Vagrant jedynie gospodarz sieci)
config.vm.provision "shell" do |s|
s.path = "setIP.sh"
s.args = ["192.168.1.150", "255.255.255.0"] #ip/netmask
privileged = "true"
end
Uruchamia skrypt powłoki przekazujący IP i maskę sieciową do skryptu powłoki jako argumenty.
Skrypt powłoki modyfikuje /etc/sysconfig/network-scripts/ifcfg-eth1
(plik konfiguracyjny dla eth1 w CentOS-6.6), a następnie kontynuuje restartowanie sieci, aby ustawienia zaczęły obowiązywać.
setIP.sh:
echo Setting IP to $1, Netmask to $2
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth1
#PACHONK SET-IP CONFIG BEGIN
IPADDR=$1
NETMASK=$2
ONBOOT=yes
DEVICE=eth1
#PACHONK SET-IP CONFIG BEGIN
EOF
#Restart networking to make IP active
/etc/init.d/network restart
Tak jak mówiłem, wygląda to był błąd na chwilę. Stworzyłem najbardziej elegancką poprawkę, jaką mogłem na razie.
Próbowałem go i działa dobrze dla mnie. Dobra robota! – PierreF