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.

Wpis powstał w oparciu o źródło