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.
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.
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.
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.
Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…
Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…
Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…
W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…
Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…
Tradycyjnie w styczniu, publikuję podsumowanie minionego roku na stronie grylewicz.pl. Poniżej trochę liczb, lista najpopularniejszych…
Zobacz komentarze
coooooooooo nie mam nic w etc ani przy enp0s3 nie ma ip