Stały adres IP w Ubuntu 18.04 server

W tym, dość krótkim, wpisie pokażę dość istotną zmianę w konfiguracji adresów IP na interfejsach sieciowych w Ubuntu 18.04 server. Niewykluczone, że ten sposób konfiguracji zostanie wprowadzony na stałe i będzie obowiązywał w nowszych wersjach tego systemu operacyjnego. Zmiany nie nazwałbym rewolucyjnej, mimo, że od teraz konfigurację adresów IP dokonuje się w innym pliku, zlokalizowanym w innym miejscu i za pomocą innej składni. Jednak nadal wszystko jest przejrzyste i intuicyjne.

Konfiguracja sieci w pliku YAML

W starszych wersja debiano pochodnych, konfiguracja sieci była określona w pliku /etc/network/interfaces, co opisywałem kilkakrotnie na stronie, chociażby tu: Konfiguracja sieci w Raspberry Pi. Debian, Ubuntu, Raspbian, Armbian – tak to się dotychczas konfigurowało. Od Ubuntu 18.04 nastąpiła dość istotna zmiana. Do opisu konfiguracji adresacji wykorzystuje się język YAML. Jest on dość prosty, a przede wszystkim, zgodnie z założeniem bardzo czytelny. Dane są prezentowane w ustrukturalizowany sposób, kolejne struktury są oddzielane znakami nowej linii, a hierarchię ustala się za pomocą wcięć linii. Więcej szczegółów o języku yaml można znaleźć na Wikipedii.

YAML, Ubuntu 18.04 i konfiguracja IP

Poszukiwania pliku yaml z konfiguracją sieci należy zacząć od folderu netplan, pełna ścieżka:

/etc/netplan/

Zobaczmy jakie są tam pliki:

ls /etc/netplan/

U mnie jest to 01-netcfg.yaml

yaml pliki w netplan

Sprawdźmy teraz, jaki adres IP ma nasz Ubuntu 18.04 Server:

ifconfig -a

interesuje nas interfejs enp0s3 (tu też jest inaczej, niż typowe ethX), który obecnie ma adres 192.168.1.177:

ifconfig -a polecenie

To teraz wyedytujmy plik z konfiguracją sieci:

sudo nano /etc/netplan/01-netcfg.yaml

Obecnie wygląda on tak:

DHCP w pliku yaml

Już na pierwszy rzut oka widać, że jest ustawione pobieranie adresu IP z serwera DHCP. Ustawmy adres statyczny, wraz z bramą i dnsami:

network:
 version: 2
 renderer: networkd
 ethernets:
   enp0s3:
     dhcp4: no
     addresses: [192.168.1.10/24]
     gateway4: 192.168.1.1
     nameservers:
       addresses: [8.8.8.8,8.8.4.4]

W edytorze nano, moja konfiguracja wyglądała jak niżej:

YAML statyczny adres IP

Uwaga, do robienia wcięć nie wolno używać tabulatora. Trzeba to robić spacją. Jeżeli networkd napotka na tabulator w pliku, pojawi się komunikat o niezidentyfikowanym znaku z określeniem, w której linii i kolumnie został znaleziony. I tu mała podpowiedź – przy liczeniu linii, nie są brane pod uwagę komentarze (linie zakomentowane).

Po zapisaniu pliku i zamknięciu nano, konfigurację należy zatwierdzić:

sudo netplan apply

Jeśli nie ma żadnych błędów w pliku, nie pojawi się żaden komunikat:

Apply netplan

I teraz zobaczmy, jaki adres ma nasz serwer:

Nowy adres IP po zmianie

W sumie dość łatwo i przejrzyście.

Podsumowanie

Nowy sposób konfigurowania sieci w Ubuntu server nie jest raczej uciążliwy, po prostu trzeba się przestawić z dotychczas znanej metody na inną. Można by zapytać, po co ta zmiana, skoro wcześniej wszystko działało dobrze. Otóż yaml bardzo łatwo można przetwarzać przez narzędzia typu grep. Dodatkowo takie pliki łatwo można edytować za pomocą skryptów. I prawdopodobnie to jest przyczyną zmiany w ubuntu. Wyobraźmy sobie sytuację – mamy 100 czy nawet 200 maszyn wirtualnych, zmieniamy adresację sieci w której pracują, czy choćby bramę lub dns’y. Prosty skrypt, nawet w bashu i temat na wszystkich maszynach załatwiony.

Możesz również polubić…

1 Odpowiedź

  1. bruh pisze:

    coooooooooo nie mam nic w etc ani przy enp0s3 nie ma ip

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.