W tym artykule pokażę, jak napisać VMware Autostart Program korzystający z języka scenariuszy Shell i skonfiguruj SystemD, aby uruchomić VMware WorkStation Pro 16 Maszyny wirtualne na rozruchu automatycznie. W ten sposób nadal będziesz mieć plan tworzenia kopii zapasowych, gdy VMware Workstation Pro zrzuci Udostępniona maszyna wirtualna funkcja na dobre. Więc zacznijmy.
Spis treści
Wprowadzenie do programu VMware Autostart
Główny cel VMware Autostart program:
1) Przeczytaj plik konfiguracyjny składający się ze wszystkich maszyn wirtualnych VMware WorkStation Pro 16.
2) Automatycznie uruchom skonfigurowane maszyny wirtualne w czasie rozruchu i zawiesić je przed wyłączeniem systemu lub ponownym uruchomieniem.
Aby to osiągnąć, stworzyłem,
1) Centralny plik konfiguracyjny VM konfigurator.JSON.
2) skrypt powłoki bash automatyczny start. Odczytuje plik konfiguracyjny konfigurator.JSON Aby określić maszyny wirtualne do zarządzania. Rozpocznie lub zawiesnie skonfigurowane maszyny wirtualne w zależności od argumentu wiersza polecenia dostarczonego do skryptu powłoki w czasie wykonywania.
3) Plik jednostki SystemD VMware-Autostart.praca. Automatycznie uruchomi skrypt bash automatyczny start Aby uruchomić wszystkie skonfigurowane maszyny wirtualne w czasie rozruchu. Uruchomi także skrypt bash automatyczny start Aby zawiesić skonfigurowane maszyny wirtualne przed wyłączeniem systemu lub ponownym uruchomieniem.
Instalowanie wymaganych zależności
Użyłem pliku JSON konfigurator.JSON do przechowywania konfiguracji VMware VM, że VMware Autostart Program będzie używany do określenia maszyn wirtualnych do Autostart podczas rozruchu.
Aby przeanalizować plik konfiguracyjny JSON ze skryptu powłoki Bash w programie VMware Autostart, użyłem JQ Komenda.
Na Ubuntu, Debian, Linux Mint, KDE Neon i inne dystrybucje Linux oparte na Debiana; Możesz zainstalować JQ Z następującym poleceniem:
$ sudo apt instal jq -yW Centos 8/Rhel 8 możesz zainstalować JQ Z następującym poleceniem:
$ sudo dnf instaluj jq -yRaz JQ jest instalowany, uruchom następujące polecenie, aby sprawdzić, czy JQ jest dostępny z terminalu.
$ jq --versionPisanie programu VMware Autostart
Ta sekcja pokaże, jak napisać VMware Autostart program i wyjaśnij, jak to działa.
Najpierw utwórz nowy katalog projektu /opt/vmware-autostart i stwórz kosz/ Podkazkodmienia w katalogu projektu w następujący sposób:
$ sudo mkdir -pv/opt/vmware -autostart/binStwórz nowy konfigurator.JSON Plik w katalogu projektu /opt/vmware-autostart Z następującym poleceniem:
$ sudo nano/opt/vmware-autostart/config.JSONkonfigurator.JSON Plik przechowuje listę VMware WorkStation Pro 16 VMS, które chcesz zacząć automatycznie.
Wpis VMware Workstation Pro 16 VM ma tylko 3 właściwości.
Możesz znaleźć Nazwa maszyny wirtualnej i VMXPath z aplikacji VMware Workstation Pro 16, jak zaznaczono na zrzucie ekranu poniżej.
Teraz, gdy znasz format pliku konfiguracyjnego, napiszmy VMware Program Autostart Korzystanie z języka scenariuszy Shell Bash.
Utwórz nowy skrypt bash automatyczny start w /opt/vmware-autostart/bin Katalog z następującym poleceniem:
$ sudo nano/opt/vmware-autostart/bin/autostartWpisz w następujących wierszach kodów w automatyczny start Skrypt powłoki.
#!/bin/bashautomatyczny start Skrypt bash powinien wyglądać w następujący sposób.
Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować automatyczny start Skrypt bash.
Tutaj,
MSG_AUTO_ANSWER_DISABLE I msg_auto_answer_enable funkcje służą do usuwania i ustawienia MSG.automatyczna odpowiedź opcja w .VMX odpowiednio plik maszyny wirtualnej.
Gdy MSG.automatyczna odpowiedź jest ustawione na PRAWDA, VMware Workstation Pro 16 Maszyny wirtualne nie czekają na żadne dane wejściowe użytkownika. Jeśli to nie jest ustawione, nie będziesz mógł uruchomić maszyn wirtualnych w tle za pomocą automatyczny start skrypt, jeśli wymaga to interakcji użytkownika, aby rozpocząć.
start_vm Funkcja służy do uruchamiania maszyny wirtualnej za pomocą .VMX plik maszyny wirtualnej. Drukuje również niezbędne komunikaty dziennika na ekranie.
SUPEND_VM Funkcja służy do zawieszenia maszyny wirtualnej za pomocą .VMX plik maszyny wirtualnej. Drukuje również niezbędne komunikaty dziennika na ekranie.
Niektóre zmienne są zdefiniowane w wierszach 23-25.
Config_file - Bezwzględna ścieżka do konfiguracji.plik JSON.
num_vms - Zastosowania JQ Aby obliczyć liczbę maszyn wirtualnych dostępnych w konfigurator.JSON plik.
działanie - Pierwszym argumentem wiersza poleceń jest działanie do wykonania. automatyczny start Skrypt używa go do ustalenia, czy uruchomić maszyny wirtualne, czy zawiesić VMS.
Linie 27-42 są używane do przejścia przez wszystkie dostępne maszyny wirtualne w konfigurator.JSON plik, włącz/wyłącz MSG.automatyczna odpowiedź właściwość dla każdej maszyny wirtualnej i uruchom/zawieszenie maszyn wirtualnych.
W pętli linie 29-31 definiują niektóre zmienne.
VM_NAME - Zastosowania JQ aby uzyskać nazwa właściwość maszyny wirtualnej z konfigurator.JSON plik.
vmx_path - Zastosowania JQ aby uzyskać VMXPath właściwość maszyny wirtualnej z konfigurator.JSON plik.
VM_AUTOSTART - Zastosowania JQ aby uzyskać automatyczny start właściwość maszyny wirtualnej z konfigurator.JSON plik.
Jeśli wartość akcji jest uruchomiona i VM_AUTOSTART (właściwość Autostart w konfiguracji.JSON) jest prawda, usuń MSG.automatyczna odpowiedź własność z .VMX plik (jeśli istnieje) maszyny wirtualnej, ustaw MSG.automatyczna odpowiedź własność do PRAWDA w .VMX plik maszyny wirtualnej i uruchom maszynę wirtualną.
Jeśli wartość działania jest zawieszona i VM_AUTOSTART (właściwość Autostart w konfiguracji.JSON) jest prawda, usuń MSG.nieruchomość autoanswer z .plik VMX zawiesaj maszynę wirtualną.
Po utworzeniu automatyczny start Skrypt bash, uczyń go wykonalnym za pomocą następującego polecenia:
$ sudo chmod +x/opt/vmware-autostart/bin/autostartAutomatycznie uruchamianie programu Autostart VMware w rozruchu
W tej sekcji utworzę usługę systemową, aby uruchomiła automatyczny start Skrypt bash automatycznie w czasie rozruchu.
Utwórz nowy plik VMware-Autostart.praca W katalogu projektu /opt/vmware-autostart następująco:
$ sudo nano/opt/vmware-autostart/vmware-autostart.pracaWpisz w następujących wierszach w VMware-Autostart.praca plik.
[Jednostka]Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować VMware-Autostart.praca plik.
Tutaj,
ExecStart uruchamia automatyczny start skrypt z początek Opcja wiersza polecenia w czasie rozruchu. Tak więc wszystkie maszyny wirtualne dostępne w konfigurator.JSON Plik zostanie uruchomiony automatycznie na rozruchu systemowym.
Execstop robi coś przeciwnego. Działa automatyczny start skrypt z wstrzymać Opcja wiersza polecenia przed wyłączeniem lub ponownym uruchomieniem komputera. Tak więc wszystkie maszyny wirtualne dostępne w konfigurator.JSON Plik zostanie zawieszony podczas wyłączania systemu lub ponownego uruchomienia.
automatyczny start Skrypt zostanie uruchomiony jako użytkownik Shovon i grupa Shovon. Musisz go wymienić swoim loginem Użytkownik i podstawowe Grupa nazwa.
Możesz znaleźć swój login Użytkownik i podstawowe Grupa Nazwa z następującym poleceniem:
$ idZrób symboliczny link do VMware-Autostart.praca plik w /etc/systemd/system katalog w następujący sposób:
$ sudo ln -s/opt/vmware-autostart/vmware-autostart.service/etc/systemd/system/vmware-autostart.pracaAby zmienia się systemd, uruchom następujące polecenie:
$ sudo systemctl demon-powódTeraz dodaj usługę SystemD VMware-Autostart.praca do uruchamiania systemu, aby automatycznie uruchomić w czasie rozruchu.
$ sudo systemCtl Włącz VMware-Autostart.pracaTestowanie programu VMware Autostart
Aby sprawdzić, czy program działa zgodnie z oczekiwaniami, musisz ponownie uruchomić komputer. Zanim to zrobisz, pamiętaj, aby dodać maszyny wirtualne, które chcesz automatycznie zacząć od rozruchu w /opt/vmware-autostart/config.JSON plik.
Dodam maszyny wirtualne Ubuntu-Desktop-1 i PC 1 w/opt/vmware-autostart/config.plik JSON do demonstracji.
Po zakończeniu uruchom ponownie komputer za pomocą następującego polecenia:
$ sudo restartGdy komputerowy komputer powinien zobaczyć, że usługa SystemD VMware-Autostart.praca Jest aktywny.
$ sudo Systemctl Status VMware-Autostart.pracaZ dzienników systemu można zobaczyć, że maszyny wirtualne Ubuntu-Desktop-1 I PC PC 1 zaczął się automatycznie dobrze.
Aby potwierdzić, że VMware WorkStation Pro 16 VMS rozpoczął się automatycznie w rozruchu, uruchom następujące polecenie:
Lista $ vmrunJak widać, VMware Workstation Pro 16 VMS działa dobrze.
Możesz również sprawdzić, czy maszyny wirtualne działają z aplikacji VMware WorkStation Pro 16, jak widać na zrzucie ekranu poniżej.
Aby sprawdzić, czy maszyny wirtualne zostaną zawieszone po wyłączeniu lub ponownym uruchomieniu komputera, otwórz jedną z wirtualnych wirtualnych, które skonfigurowałeś do AutoStart i uruchom dowolną aplikację.
Zamknij aplikację VMware WorkStation Pro 16 podczas pracy maszyny wirtualnej.
Kliknij Uruchom w tle jak zaznaczono na zrzucie ekranu poniżej.
Teraz ponownie uruchom komputer z następującym poleceniem:
$ sudo restartPo uruchamianiu komputera otwórz aplikację VMware Workstation Pro 16 i powinieneś zobaczyć, że maszyna wirtualna jest w tym samym stanie, co ostatni raz (odzyskany ze stanu zawieszonego).
Znane problemy
Trzymaj maszynę wirtualną otwartą w aplikacji VMware Workstation Pro 16. VMware Autostart Program nie będzie mógł zawiesić maszyny wirtualnej podczas wyłączania lub ponownego uruchomienia komputera, jednocześnie utrzymując otwartą aplikację VMware WorkStation Pro 16. Ludzie może być rzadkie wyłączenie lub ponowne uruchomienie komputera, jednocześnie utrzymując otwarte programy. Ale program można ulepszyć, aby zapewnić, że aplikacja VMware Workstation Pro 16 jest zamknięta przed zawieszeniem maszyn wirtualnych.
Repozytorium Github
Program VMware Autostart wykazany w tym artykule jest również dostępny w GitHub. Możesz sklonować repozytorium GitHub (Shovon8/VMware-Autostart) tego programu, aby zapisać się na pisaniu.
Link github: https: // github.com/shovon8/vmware-autostart
Wniosek
Ten artykuł pokazuje, jak napisać VMware Autostart Program, aby automatycznie uruchomić VMware Workstation Pro 16 wirtualne maszyny na rozruchu i zawiesić je przed wyłączeniem systemu lub ponownym uruchomieniem.
Bibliografia
[1] VMware - Aplikacja wiersza poleceń
[2] Korzystanie z VMrun do sterowania maszynami wirtualnymi
[3] Policz elementy tablicy JSON z JQ - PHPFOG.com
[4] Jak usunąć cytaty z wyników? · Problem #1735 · Stedolan/JQ · Github