Polecenia powłoki ESXCLI i ESXi dla środowiska VMware
Większość ustawień jest dostępna w graficznym interfejsie użytkownika (GUI), chociaż czasami może być konieczne uzyskanie pewnych informacji lub zmiana konfiguracji, która nie jest wyświetlana w graficznym interfejsie użytkownika. W tym przypadku wystarczy skorzystać z interfejsu wiersza poleceń (CLI). Oprócz tradycyjnych poleceń, które są takie same w systemach Linux i ESXi, ESXi ma własne polecenia ESXCLI.
Domyślnie powłoka ESXi ze względów bezpieczeństwa jest wyłączona. Można ją włączyć na 3 sposoby:
- Z poziomu ESXi Host Client: Manage -> Services -> TMS-SSH ▶Start
- Z pozoimu vCenter: Z Invenotry wybieramy ESXi do którego chcemy ustawić dostęp SSH. Configure -> Services -> SSH ▶ Start
- Z poziomu Direct Console User Interface (DCUI): Troubleshooting Options -> Enable SSH
Aby połączyć się zdalnie z konsolą ESXi przez SSH w konsoli Linux korzystamy z polecenia ssh natomiast w systemie Windows możemy skorzystać program PuTTY.
Informacje o poleceniach ESXCLI
ESXCLI jest częścią powłoki ESXi, jest to framework CLI przeznaczony do zarządzania infrastrukturą wirtualną i kontrolowania samego ESXi na niskim poziomie.
Możesz zlokalizować ESXCLI po wykonaniu następujących poleceń:
[root@VS1:~] which esxcli
/bin/esxcli
[root@VS1:~] ls -l /sbin/esxcli
lrwxrwxrwx 1 root root 14 Feb 18 08:42 /sbin/esxcli -> /bin/esxcli.py
[root@VS1:~]
Jak widać w danych wyjściowych konsoli, ESXCLI to skrypt napisany w Pythonie, który znajduje się w katalogu /sbin/ . Jeśli chcesz zobaczyć zawartość skryptu, możesz skorzystać z wbudowanego edytora tekstu vi
Lista poleceń esxcli
lista najpopularniejszych wygląda następująco:
- device– polecenia menedżera urządzeń
- esxcli – polecenia związane z samym ESXCLI
- fcoe — polecenia Fibre Channel przez Ethernet
- graphics– polecenia graficzne VMware
- hardware – komendy do sprawdzania właściwości sprzętu i konfigurowania sprzętu
- iscsi — polecenia VMware iSCSI
- network – obejmuje szeroką gamę poleceń do zarządzania ogólnymi ustawieniami sieciowymi hosta (takimi jak adres IP, ustawienia DNS hosta ESXi, firewall) oraz komponentami sieci wirtualnej, takimi jak vSwitch, grupy portów itp.
- nvme – zarządzanie rozszerzeniami dla sterownika VMware NVMe
- rdma – polecenia do zarządzania stosem protokołów zdalnego bezpośredniego dostępu do pamięci
- sched – polecenia służące do konfigurowania harmonogramu i właściwości systemu VMkernel
- software– zarządzanie obrazami i pakietami oprogramowania ESXi dla ESXi
- storage – komendy służące do zarządzania magazynem
- system – polecenia do konfigurowania właściwości systemu VMkernel, systemu rdzenia jądra i usług systemowych
- vm – niektóre polecenia, których można użyć do sterowania operacjami maszyny wirtualnej
- vsan — polecenia VMware vSAN
Główne polecenia pojawiają się jako czasowniki wskazujące na tę samą czynność:
- list – pokazuje listę dostępnych obiektów (na przykład esxcli hardware bootdevice list – wyświetla listę dostępnych urządzeń startowych)
- get – pobierz wartość zdefiniowanego ustawienia lub właściwości (np. esxcli hardware clock get – sprawdź ustawiony czas)
- set – ustaw wymagany parametr ręcznie (na przykład esxcli hardware clock set -y 2019 -s 00 – ustaw rok na 2019 i ustaw sekundy na 00)
- load/unload – ładuje konfigurację systemu ( esxcli network firewall load – ładuje moduł i ustawienia firewalla zapisane w pliku konfiguracyjnym)
Jeśli nie możesz zapamiętać konkretnego polecenia ESXCLI związanego z odpowiednią przestrzenią nazw, możesz wprowadzić polecenie i zobaczyć wskazówkę w danych wyjściowych konsoli — na przykład wpisz:
esxcli network , aby wyświetlić wszystkie dostępne polecenia dla sieciowej przestrzeni nazw, a następnie wpisz:
esxcli network vm , aby sprawdzić polecenia dla przestrzeni nazw vm .
Plik dziennika ESXCLI znajduje się w katalogu /var/log/esxcli.log
Dane są zapisywane w tym pliku, jeśli komenda ESXCLI nie została pomyślnie wykonana. Jeśli komenda ESXCLI zostanie pomyślnie uruchomiona, w tym pliku dziennika nic nie zostanie zapisane.
Przydatne polecenia ESXCLI
Sprawdzanie sprzętu (hardware)
Wyświetl zainstalowane urządzenia PCI:
esxcli hardware pci list | more
Sprawdź ilość pamięci zainstalowanej na serwerze ESXi:
esxcli hardware memory get
Zobacz szczegółowe informacje o zainstalowanych procesorach:
esxcli hardware cpu list
Ustawienia systemowe
Sprawdź dokładną wersję i numer kompilacji ESXi oraz zainstalowanych aktualizacji i poprawek:
esxcli system version get
Sprawdź nazwę hosta serwera ESXi:
esxcli system hostname get
Sprawdź datę instalacji ESXi:
esxcli system stats installtime get
Sprawdź konfigurację SNMP:
esxcli system snmp get
Wprowadź hosta ESXi w tryb konserwacji:
esxcli system maintenanceMode set –enable yes
Wyjdź z trybu konserwacji:
esxcli system maintenanceMode set –enable no
Po wprowadzeniu hosta ESXi w tryb konserwacji można go zamknąć lub ponownie uruchomić.
Wyłącz hosta ESXi:
esxcli system shutdown poweroff
Zrestartuj hosta ESXi:
esxcli system shutdown reboot
Możesz także ustawić opóźnienie i wpisać przyczynę restartu hosta, która zostanie zapisana w logach systemowych:
esxcli system shutdown reboot -d 60 -r “Instalowanie poprawek”
W tym przykładzie opóźnienie wynosi 60 sekund.
Innym poleceniem jest ustawienie niestandardowego komunikatu powitalnego zamiast standardowego ekranu tła. Niestandardowy komunikat może służyć do ukrywania informacji o hoście ESXi na wyświetlaczu podłączonym do hosta ESXi, gdy użytkownik nie jest zalogowany.
esxcli system welcomemsg set -m=”Przykładowe powitanie ! Naciśnij F2″
Sprawdź, czy wiadomość powitalna jest już ustawiona:
esxcli system welcomemsg get
Ustawienia sieci
Sprawdź stan aktywnych połączeń sieciowych:
esxcli network ip connection list
Wyświetl listę zainstalowanych kart sieciowych
esxcli network nic list
Wyświetl informacje o interfejsach sieciowych:
esxcli network ip interface list
Wyświetl informacje o adresach IP interfejsów sieciowych obecnych na serwerze:
esxcli network ip interface ipv4 get
Wyświetl informacje o sieci dla maszyn wirtualnych:
esxcli network vm list
Wyświetl ustawienia wyszukiwania domen:
esxcli network ip dns search list
Zobacz serwery DNS ustawione w ustawieniach sieci:
esxcli network ip dns server list
Wyświetl listę przełączników wirtualnych i grup portów:
esxcli network vswitch standard list
Pokaż statystyki dla interfejsu sieciowego vmnic0 : (zero)
esxcli network nic stats get -n vmnic0
Sprawdź stan zapory i ustawienia reguł:
esxcli network firewall get
esxcli network firewall ruleset list
Uwaga : Domyślną zasadą zapory jest odrzucanie ruchu.
Możesz tymczasowo wyłączyć zaporę na hoście ESXi w celu rozwiązania problemu:
esxcli network firewall set –enabled false
Zaporę sieciową należy włączyć poleceniem:
esxcli network firewall set –enabled true
Ze względów bezpieczeństwa zaleca się włączenie zapory sieciowej ESXi.
Magazyn (Storage)
Sprawdź informacje o zamontowanych woluminach VMFS:
esxcli storage vmfs extent list
Zobacz odwzorowania systemów plików VMFS na urządzenia dyskowe:
esxcli storage filesystem list
Wyświetl listę wszystkich ścieżek iSCSI w systemie:
esxcli storage core path list
Wyświetl listę zamontowanych udziałów NFS:
esxcli storage nfs list
Sprawdzanie SMART, diagnostyka dysków.
Najpierw wyświetl listę wszystkich urządzeń i znajdź unikalną nazwę urządzenia
esxcli storage core device list
Następnie użyj polecenia, aby uzyskać dane SMART tego urządzenia:
esxcli storage core device smart get -d ID_DYSKU
gdzie ID_DYSKU to nazwa urządzenia, które chcemy zdiagnozować. Na przykład:
[root@VS1:~] esxcli storage core device smart get -d t10.NVMe____Samsung_SSD_970_PRO_1TB_________________C75542015A382500
Parameter Value Threshold Worst Raw
------------------------ ----- --------- ----- ---
Health Status OK N/A N/A N/A
Power-on Hours 18466 N/A N/A N/A
Power Cycle Count 48 N/A N/A N/A
Reallocated Sector Count 0 90 N/A N/A
Drive Temperature 36 81 N/A N/A
[root@VS1:~]
iSCSI
Pokaż listę dostępnych adapterów iSCSI:
esxcli iscsi adapter list
Ponownie wykryj i przeskanuj adaptery iSCSI:
esxcli iscsi adapter discovery rediscover -A adapter_name
esxcli storage core adapter rescan -A adapter_name
Zamiast -A adapter_name można ponownie przeskanować wszystkie adaptery za pomocą opcji –all .
Oprogramowanie (software)
Pakiety oprogramowania przeznaczone dla ESXi są zwykle dystrybuowane jako pliki VIB (pakiet instalacyjny vSphere). VIB-y są zazwyczaj dystrybuowane jako pliki archiwum .ZIP. Czasami zachodzi potrzeba włączenie VIB do obrazu ESXi w celu dodania obsługi sprzętu lub w celu zastosowania poprawki bezpieczeństwa.
Wyświetlenie listy pakietów VIB zainstalowanych na hoście ESXi:
esxcli software vib list
Zainstalowanie VIB z poziomu ESXCLI (host ESXi musi być w trybie maintenance):
esxcli software vib install -d /vmfs/volumes/datastore1/patches/patch_name.zip
Operacje na maszynach wirtualnych (vm)
Przestrzeń nazw vm może być używana do operacji na uruchomionych procesach maszyn wirtualnych.
Sprawdź listę uruchomionych maszyn wirtualnych i wyświetl ich World ID:
esxcli vm process list
[root@VS1:~] esxcli vm process list
APC-VS1
World ID: 2190610
Process ID: 0
VMX Cartel ID: 2190609
UUID: 41 0a 55 7e sd f6 17 26-a7 89 12 ee 03 36 48 f8
Display Name: APC-VS1
Config File: /vmfs/volumes/602f389d-2wy7wye5-1415-6805cac59d71/APC-VS1/APC-VS1.vmx
Zamknij maszynę wirtualną przy użyciu identyfikatora World ID. W bieżącym przykładzie maszyny wirtualnej APC-VS1 czyli 2190610.
esxcli vm proces kill -w 2190610 -t soft
Istnieją trzy dostępne opcje dla polecenia kill :
soft – w systemie operacyjnym gościa wysyłany jest prawidłowy sygnał, aby poprawnie zamknąć maszynę wirtualną;
hard – maszyna wirtualna jest natychmiast wyłączana;
force — maszyna wirtualna jest wyłączana podobnie do wyłączania komputera po odłączeniu kabla zasilającego. Używaj tylko wtedy, gdy poprzednie dwa typy zakończyły się niepowodzeniem.
Inne przydatne polecenia powłoki ESXi
Otwórz ESXi DCUI z konsoli:
dcui
Naciśnij klawisze Ctrl+C , aby wrócić do wiersza poleceń.
Konwertuj dysk wirtualny z obsługą thick provisioned na dysk wirtualny z obsługą thin provisioned za pomocą narzędzia vmkfstools :
vmkfstools -i /vmfs/volumes/vmfs_datastore/vm_name/thick_disk.vmdk -d thin /vmfs/volumes/vmfs_datastore/vm_name/new_thin_disk_name.vmdk
Otwórz menedżera zadań ESXi:
esxtop
Możesz przełączać się naciskając odpowiednie klawisze:
C – procesor
I – interrupt
M – pamięć
N – sieć
D – adapter dysku
U – urządzenie dyskowe
V – dysk maszyny wirtualnej
P – zarządzanie energią
Otwórz interaktywną konsolę VMware:
vsish
Pokaż załadowane sterowniki vmkernel:
vmkload_mod –list
Sprawdź ustawienia partycji wymiany:
esxcli sched swap system get
Wyświetl listę użytkowników, używając jednego z następujących poleceń:
esxcli system account list
cat /etc/passwd lub less/etc/passwd
Tworzenie nowego użytkownika
- Za pomocą polecenia adduser
/usr/lib/vmware/busybox/bin/busybox adduser
Aby dodać użytkownika systemu ESXi:
/usr/lib/vmware/busybox/bin/busybox adduser -s /bin/sh -G root -h / user1
gdzie:
-s /bin/sh to powłoka używana po zalogowaniu użytkownika;
-G root – nazwa grupy, której członkiem jest nowy użytkownik (grupa root);
-h / to katalog domowy (katalog główny) nowego użytkownika;
user1 to nazwa użytkownika.
Wprowadź nowe hasło i potwierdź hasło po wyświetleniu monitu.
- Za pomocą ESXCLI
Alternatywnie możesz dodać nowego użytkownika używając esxcli za pomocą polecenia:
esxcli system account add -d=”Testowy” -i=”test” -p=”Password-Test321″ -c=”Password-Test321″
gdzie:
-d opis użytkownika
–i nazwa użytkownika
-p to hasło użytkownika
-c to potwierdzenie hasła
Wszystkie polecenia uruchamiane w powłoce ESXi są rejestrowane. Nie podawaj haseł bezpośrednio w wierszu poleceń.
Jeśli zależy Ci na bezpieczeństwie, wprowadź polecenia bez umieszczania w nich haseł jako zwykłego tekstu:
esxcli system account add -d=”Testowy” -i=”test” -p -c
Hasło nie będzie wyświetlane w konsoli podczas wprowadzania.