[Vagrant] Jak rozwiązać problem z siecią w Ubuntu 14.04?

Systemy operacyjne
[Vagrant] Jak rozwiązać problem z siecią w Ubuntu 14.04?

Jeśli czytacie mojego bloga to zapewne wiecie, że ostatnimi czasy poświęcam sporo czasu na zapoznanie z tematem wirtualizacji. Świetnym narzędziem z którym tę przygodę można rozpocząć jest Vagrant, a następnie warto zapoznać się z Docker-em. Jednak jak wszędzie możemy spotkać się z pewnymi problemami.

Szczerze powiedziawszy od dawna nie pracuję na Windows-ie, ale część systemów które tworzę muszą na nim pracować. I o dziwo większość problemów z jakimi się stykam występują tylko tam 😉 Pocieszające prawda? Tym razem jednak nie o samym Windows-ie, a o problemie z jakim możecie się spotkać przy próbie wirtualizacji Ubuntu 14.04 wersja 32 bitowa na Windows-ie z kartą sieciową Intel-a. Poniżej komunikat, który możecie zauważyć przy próbie uruchomienia systemu poleceniem vagrant up

<br />
cloud-init-nonet[4.54]: waiting 10 seconds for network device<br />
cloud-init-nonet[14.57]: waiting 120 seconds for network device<br />
cloud-init-nonet[134.57]: gave up waiting for a network device.<br />

Jeśli widzicie takowy komunikat to musicie wprowadzić drobne modyfikacje do waszego pliku Vagrantfile. Zacznijmy od zaprezentowania bazowego pliku Vafrantfile, który będziemy modyfikować w celu eliminacji błędu:

<br />
Vagrant.configure(&quot;2&quot;) do |config|</p>
<p>  config.vm.box = &quot;ubuntu/trusty32&quot;</p>
<p>  config.vm.network :private_network, ip: '192.168.33.10'</p>
<p>  config.vm.provider &quot;virtualbox&quot; do |vb|</p>
<p>      vb.name = &quot;Developer machine&quot;<br />
      vb.cpus = 1<br />
      vb.memory = 1024<br />
      vb.gui = false</p>
<p>  end</p>
<p>end<br />

Pierwsza rzecz jaką należy zrobić to włączyć GUI, gdyż dzięki temu będziemy w stanie obserwować proces tworzenia i uruchamiania maszyny wirtualnej. Tym samym będziemy w stanie zaobserwować, gdzie leży problem w jej uruchomieniu bądź utworzeniu. W tym celu zmieniamy lub dodajemy wpis:

vb.gui = true

Kiedy będziemy mieli pewność, że problemem jest sieć i pojawia się poniższy komunikat:

<br />
cloud-init-nonet[4.54]: waiting 10 seconds for network device<br />
cloud-init-nonet[14.57]: waiting 120 seconds for network device<br />
cloud-init-nonet[134.57]: gave up waiting for a network device.<br />

Prawdopodobnie problemem jest serownik karty sieciowej, który w tej kombinacji nie działa prawidłowo 🙁 Psioczyłem na Windows-a, a tu taki poważy błąd w Ubuntu. Na szczęście w odróżnieniu od Windows-a w linux-ach mamy z reguły jakieś alternatywne rozwiązania i społeczność, która chętnie pomoże je znaleźć. Tak więc i w tym przypadku mamy proste rozwiązanie bowiem dodajemy wpis zmieniający kartę sieciową:

<br />
vb.customize [&quot;modifyvm&quot;, :id, &quot;--nictype1&quot;, &quot;Am79C973&quot;]<br />
vb.customize [&quot;modifyvm&quot;, :id, &quot;--nictype2&quot;, &quot;Am79C973&quot;]<br />

Po takiej modyfikacji nasz plik Vagrantfile będzie wyglądał następująco:

<br />
Vagrant.configure(&quot;2&quot;) do |config|</p>
<p>  config.vm.box = &quot;ubuntu/trusty32&quot;</p>
<p>  config.vm.network :private_network, ip: '192.168.33.10'</p>
<p>  config.vm.provider &quot;virtualbox&quot; do |vb|</p>
<p>    vb.name = &quot;Developer machine&quot;<br />
    vb.cpus = 1<br />
    vb.memory = 1024<br />
    vb.gui = false</p>
<p>    vb.customize [&quot;modifyvm&quot;, :id, &quot;--nictype1&quot;, &quot;Am79C973&quot;]<br />
    vb.customize [&quot;modifyvm&quot;, :id, &quot;--nictype2&quot;, &quot;Am79C973&quot;]</p>
<p>  end</p>
<p>end<br />