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