Komputer i internet

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

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:

To teraz wyedytujmy plik z konfiguracją sieci:

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

Obecnie wygląda on tak:

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:

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:

I teraz zobaczmy, jaki adres ma nasz serwer:

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.

Wojtek

Zobacz komentarze

Ostatnie posty

Słuchanie stacji radiowych DAB+ w Linuksie

Radio nieodłącznie kojarzy się z nieśmiertelnym FM lub transmisją intermetową. Standard DAB+ wydaje się być…

2 tygodnie temu

Tani odpowiednik baterii 9V 6F22

Poniżej opiszę odpowiednik drogiej (w stosunku do pojemności) baterii 9V o oznaczeniu 6F22. Ze względu…

4 tygodnie temu

Drogowa / budowlana lampa ostrzegawcza – budowa i działanie

Widząc migającą na pomarańczowo lampę ostrzegawczą, zastanawiałem się (ciekawe czy tylko ja) jak jest zbudowana,…

1 miesiąc temu

ConsolePi – genialny serwer szeregowej konsoli

W tym wpisie przedstawię bardzo ciekawe narzędzie na RaspberryPi, przydatne każdemu administratorowi urządzeń sieciowych. W…

2 miesiące temu

Adapter USB-HDMI Grabber Video

Poniżej opiszę mały, przydatny gadżet, który przechwytuje obraz i dźwięk z portu HDMI i przekazuje…

2 miesiące temu

Przejściówka USB-RS232 PL2303HXA PHASED OUT SINCE 2012

Tytuł tego wpisu zawiera część komunikatu z menedżera urządzeń systemu Windows 11, po wsadzeniu w…

2 miesiące temu