Jak utworzyć maszynę wirtualną przy użyciu klienta OpenStack CLI na chmurze NSIS Cloud
Ten artykuł opisuje tworzenie maszyny wirtualnej na chmurze NSIS Cloud przy użyciu wyłącznie klienta OpenStack CLI. Zawiera podstawowe informacje, potrzebne do rozpoczęcia pracy.
Co obejmuje ten artykuł?
Polecenia openstack, potrzebne do utworzenia maszyny wirtualnej
Wybór parametrów nowej maszyny wirtualnej
Obraz
Flavor
Para kluczy
Sieć(i)
Grupa(-y) zabezpieczeń
Tworzenie maszyny wirtualnej tylko przy użyciu CLI
Dodanie adresu floating IP do istniejącej maszyny wirtualnej
Używanie SSH do dostępu do maszyny wirtualnej
Wymagania wstępne
Nr 1 Konto
Potrzebujesz konta hostingowego NSIS Cloud z dostępem do interfejsu Horizon: https://horizon.cloudferro.com.
Nr 2 Skonfigurowany klient OpenStack CLI
Aby mieć klienta OpenStack CLI skonfigurowanego i działającego, zobacz artykuł: Jak zainstalować OpenStackClient dla systemu Linux na NSIS.
Jeśli polecenie
openstack flavor list
wyświetla listę flavorów, polecenie openstack działa poprawnie.
Nr 3 Dostępny obraz do utworzenia nowej maszyny wirtualnej
Ogólnie rzecz biorąc, możesz utworzyć nową maszynę wirtualną z czterech źródeł:
obraz systemu operacyjnego
instance snapshot
volume
volume snapshot
W tym artykule użyjemy pierwszej opcji, obrazu systemu operacyjnego, jako źródła nowej maszyny wirtualnej. Istnieją trzy sposoby uzyskania obrazu:
- Obrazy automatycznie uwzględnione w chmurze NSIS Cloud
Istnieje zestaw obrazów, które są wbudowane w chmurę. Zazwyczaj lista domyślnych obrazów będzie zawierać obrazy Ubuntu, CentOS i Windows 2019/22, z różnymi flavorami. Mogą być dostępne także inne domyślne obrazy, na przykład dla AlmaLinux, OPNSense, OSGeolive, Rocky Linux itd.
- Obrazy udostępnione z innych projektów
W OpenStack obrazy mogą być udostępnione między projektami. Aby mieć dostęp do obrazu z innego projektu, musisz go najpierw zaakceptować.
- Obrazy przesłane w ramach twojego konta
Wreszcie, możesz przesłać własny obraz. Po przesłaniu, obraz będzie traktowany jako pełnoprawny zasób, ale może nie być automatycznie dostępny w innych kontach, które możesz posiadać.
Zobacz ten artykuł
dla przykładu przesłania nowego obrazu Debian do chmury.
Nr 4 Dostępna para kluczy SSH
Dwa artykuły mogą pomóc wygenerować i zaimportować klucz SSH do chmury:
Nr 5 Znajomość reguł dla obrazu przed jego użyciem
Oto ważne informacje o obrazie używanym:
- Nazwa użytkownika
Musisz znać nazwę użytkownika dla obrazu, którego używasz.
Dla obrazów Ubuntu i CentOS na NSIS Cloud będą dostępni dwaj użytkownicy,
eoconsole, aby zmienić hasło oraz
eouser, aby rzeczywiście użyć systemu.
Jeśli używałeś obrazu Debian przesłanego przez siebie, to byłby to jeden użytkownik debian.
- Typ dostępu zdalnego
Dla maszyn wirtualnych opartych na Linuxie, w większości przypadków będzie to SSH – stąd potrzeba aby wcześniej zainstalować parę kluczy.
Dla obrazu Debian 11, logowanie za pomocą hasła nie jest dozwolone, więc dostęp SSH będzie wymagany.
- Dostęp do konsoli WWW
Czy jest domyślne konto w obrazie do użycia? Czy dostęp do konsoli WWW jest dozwolony?
- Uprawnienia
Czy użytkownik obrazu ma uprawnienia sudo czy nie? Użytkownicy eouser i debian mają uprawnienia sudo na swoich odpowiednich hostach, ale nie musi tak być w każdym przypadku.
Aby połączyć się z maszyną wirtualną za pomocą SSH, będziesz także potrzebować jej adresu IP. Możesz uzyskać ten adres IP dopiero po utworzeniu maszyny wirtualnej, więc ściśle rzecz biorąc, nie jest to wymóg wstępny.
Zawsze używaj najnowszej wartości identyfikatora obrazu
Od czasu do czasu domyślne obrazy systemów operacyjnych w chmurze NSIS Cloud są uaktualniane do nowszych wersji. W efekcie, ich identyfikator obrazu ulega zmianie. Powiedzmy, że identyfikator obrazu dla Ubuntu 20.04 LTS był 574fe1db-8099-4db4-a543-9e89526d20ae w momencie pisania tego artykułu. Podczas pracy z artykułem zwykle użyjesz aktualnej wartości identyfikatora obrazu i użyjesz go, aby zastąpić 574fe1db-8099-4db4-a543-9e89526d20ae w całym tekście.
Teraz, załóżmy, że chcesz zautomatyzować procesy pod OpenStack, być może przy użyciu Heat, Terraform, Ansible lub innego narzędzia do automatyzacji OpenStack; jeśli użyjesz wartości 574fe1db-8099-4db4-a543-9e89526d20ae dla identyfikatora obrazu, pozostanie on zakodowany na stałe i raz, gdy ta wartość ulegnie zmianie podczas uaktualnienia, zautomatyzowany proces może przestać działać.
Ostrzeżenie
Upewnij się, że twój kod automatyzacji używa aktualnej wartości identyfikatora obrazu systemu operacyjnego, a nie zakodowanej na stałe.
Polecenie openstack do utworzenia maszyny wirtualnej
Polecenie openstack do utworzenia maszyny wirtualnej to
openstack server create
Oto, jak wyświetlić wszystkie jego parametry:
openstack server create --help
Nazwa każdego z parametrów zaczyna się od dwóch kresek, --, a po nich następuje wartość parametru. Na przykład, możesz określić nazwę obrazu użytego do utworzenia maszyny wirtualnej, używając parametru --image. Będzie to wyglądać wewnątrz polecenia tak:
openstack server create \
--image Debian-custom-upload \
Istnieje około 27 różnych parametrów, które możesz użyć do utworzenia nowej maszyny wirtualnej przy użyciu interfejsu linii poleceń. Do celów praktycznych wybierzesz tylko kilka i pozostawisz resztę domyślnie, nie podając ich.
Krok 1: Wybór parametrów nowej maszyny wirtualnej
To jest proces definowania i wyboru parametrów, z których będzie korzystać twoja nowa maszyna wirtualna.
Obraz
Aby dowiedzieć się, jakiego obrazu użyć, wykonaj następujące polecenie i zobacz dostępne obrazy:
openstack image list
Powinien pojawić się wynik w tym formacie:
Parametr dla openstack server create to --image.
Na zrzucie ekranu powyżej zobaczysz:
domyślne obrazy dostępne w chmurze NSIS Cloud, a także
customowy obraz o nazwie Debian-test przesłany przez użytkownika podczas pracy z artykułem wymienionym w Wymaganiu wstępnym nr 3.
W tym przykładzie użyjemy powyższego custom obrazu:
--image "Ubuntu 22.04 LTS"
Flavor
Flavory określają sprzęt dostępny dla maszyny wirtualnej. Możesz wyświetlić listę dostępnych flavorów, używając tego polecenia:
openstack flavor list
Parametr dla openstack server create to --flavor.
Flavory, które możesz wybrać, będą zależały od wybranego obrazu. Na przykład, następujące flavory zawierają dostęp do NVIDIA GPU:
vm.a6000.1
vm.a6000.2
vm.a6000.4
vm.a6000.8
ale powinny być używane tylko z domyślnymi obrazami, które zawierają frazę NVIDIA w swoich nazwach. (Te obrazy zawierają oprogramowanie specjalnie zaprojektowane dla tych flavorów.)
--flavor eo1.small
Para kluczy
Użyj tego parametru tylko wtedy, gdy chcesz zastosować klucz SSH do swojej maszyny wirtualnej, a obraz wybrany przez ciebie go obsługuje.
Obraz Ubuntu, który będziemy używać w tym przykładzie, obsługuje tę metodę. Poza tym, jeśli nie zastosujesz klucza SSH do maszyny wirtualnej utworzonej przy użyciu tego obrazu, dostęp do tej maszyny wymagać będzie dodatkowych manipulacji.
Aby wyświetlić listę dostępnych par kluczy, wykonaj tę komendę:
openstack keypair list -c Name -c Type
Parametr do użycia to --key-name.
Na przykład:
--key-name sshkey
Sieci
Aby wyświetlić listę sieci, do których można podłączyć swoją maszynę wirtualną, wykonaj następującą komendę:
openstack network list -c Name
Parametr do użycia to --network.
Możesz chcieć użyć dwóch lub więcej sieci w nowej maszynie wirtualnej. Po prostu powtórz parametr --network z inną wartością tyle razy, ile potrzebujesz. Na przykład, aby dodać network1 i network2, dodaj następujące elementy do komendy openstack server create:
--network network1 --network network2
Grupy zabezpieczeń
Grupy zabezpieczeń blokują lub pozwalają na różne typy ruchu internetowego na twojej maszynie wirtualnej. Aby wyświetlić listę dostępnych grup zabezpieczeń, wykonaj następującą komendę:
openstack security group list -c Name
Oto lista dostępnych grup zabezpieczeń w systemie, który był używany przez jakiś czas:
Najbardziej podstawowa grupa zabezpieczeń to default, jednak w powyższym obrazie widzimy również grupę o nazwie allow_ping_ssh_icmp_rdp i oto, co ona zawiera:
Mogą być również inne grupy zabezpieczeń, zwłaszcza jeśli tworzyłeś klastry Kubernetes.
Parametr do użycia to --security-group. Aby dodać dwie grupy zabezpieczeń, użyj --security-group dwa razy i tak dalej.
--security-group group1 --security-group group2
Krok 2: Utwórz maszynę wirtualną
Wykonaj komendę openstack server create. Dodaj parametry na podstawie wyborów dokonanych w Kroku 1. Zakończ komendę nazwą swojej maszyny wirtualnej.
Przykład
Użyjmy obrazu Ubuntu 22.04. LTS. Nie mamy innego obrazu o tej samej nazwie i chcemy utworzyć maszynę wirtualną o następujących parametrach:
Nazwa: Test-Ubuntu
flavor: eo1.small
Źródło: obraz Ubuntu 22.04 LTS
Para kluczy: sshkey wcześniej przesłany do twojego konta
Grupy zabezpieczeń: default i allow_ping_ssh_icmp_rdp
Sieć: cloud_00341_1
W twoim przypadku te parametry będą prawdopodobnie inne.
Oto komenda tworząca maszynę wirtualną o następujących parametrach:
openstack server create \
--image "Ubuntu 22.04 LTS" \
--flavor eo1.small \
--key-name sshkey \
--network cloud_00341_3 \
--security-group default \
--security-group allow_ping_ssh_icmp_rdp \
Test-Ubuntu
Znakiem backslash \ rozdzielono jedną komendę na wiele linii, co poprawia czytelność.
Jeśli wprowadziłeś komendę poprawnie, powinieneś zobaczyć dane wyjściowe zawierające informacje o twojej maszynie wirtualnej, na przykład:
Ostrzeżenie
Jeśli powtórzysz tę samą komendę server create po raz drugi, utworzysz nową instancję, również nazwaną Test-Ubuntu. Będziesz mieć dwie instancje o tej samej nazwie, jak pokazano poniżej:
Aby odróżnić je, użyj ich wartości identyfikatora. Na przykład, wykonaj poniższą komendę i w niej zastąp debf8557-defc-4f44-8c9b-e10b7689e546 identyfikatorem twojej maszyny wirtualnej.
openstack server show debf8557-defc-4f44-8c9b-e10b7689e546
Zwykle, po maksymalnie minucie, ta komenda powinna wyświetlić dane wyjściowe z Running w polu power_state:
Oznacza to, że twoja maszyna wirtualna jest operacyjna.
Krok 3: Dodaj adres floating IP do istniejącej maszyny wirtualnej
Aby uzyskać dostęp do maszyny wirtualnej z Internetu, maszyna wirtualna potrzebuje adres floating IP. Możesz sprawdzić listę dostępnych adres floating IP w twoim projekcie, wykonując następującą komendę:
openstack floating ip list
Jeśli dane wyjściowe są puste, oznacza to, że projekt nie ma jeszcze adres floating IP.
Aby przypisać adres floating IP do twojego projektu, wykonaj następującą komendę.
openstack floating ip create external
external oznacza sieć zewnętrzną używaną w twoim projekcie
Informacja
Domyślnie nazwą tej sieci jest external – możesz ją znaleźć, używając komendy openstack network list.
Dane wyjściowe tej komendy powinny zawierać informacje o utworzonym adresie IP, na przykład:
Zapisz wartość znajdującą się w polu floating_ip_address – to rzeczywisty adres IP dla nowej maszyny.
Ogólna forma komendy CLI do przypisania adresu IP do nowej maszyny to:
openstack server add floating ip <instance_name_or_id> <floating_ip>
Jeśli instancja, którą właśnie utworzyłeś, ma unikalną nazwę, adres IP zostanie jej przypisany; jednak, jeśli nazwa nie jest unikalna, musisz określić wartość identyfikatora. W naszym przypadku:
openstack server add floating ip debf8557-defc-4f44-8c9b-e10b7689e546 185.254.222.127
i upewnij się, że zastąpisz 185.254.222.127 swoim adresem floating IP z pola floating_ip_address.
Jeśli ta komenda zostanie wykonana pomyślnie, nie powinna wyświetlać żadnego wyniku. Możesz sprawdzić przypisanie, wykonując następującą komendę:
openstack server list -f json
Krok 4: Użyj SSH, aby uzyskać dostęp do maszyny wirtualnej
Komenda SSH rozpocznie połączenie z terminalem na zdalnej instancji. Ma trzy główne parametry:
- Para kluczy
Użyj klucza prywatnego z pliku. W naszym przypadku nazwijmy go sshkey.pem i umieśćmy w tym samym katalogu, z którego używamy komendy openstack.
- Nazwa użytkownika
Musi to być istniejący użytkownik wewnątrz instancji. W tym artykule używamy jednego z domyślnych obrazów, dla Ubuntu, więc nazwa użytkownika to eouser; dla obrazu Debian nazwa użytkownika będzie debian itd.
- Adres IP
Użyj adresu IP z tego artykułu, 185.254.222.127.
Komenda wygląda tak:
ssh -i sshkey.pem [email protected]
gdzie, oczywiście, zastąpisz 185.254.222.127 rzeczywistym adresem floating IP twojej maszyny wirtualnej.
Powinien pojawić się wynik podobny do tego:
Prompt zostaje zmieniony na eouser@test-ubuntu i możesz teraz wydawać polecenia na komputerze lokalnym, które będą miały wpływ na komputer zdalny.
Co można zrobić dalej
Możesz używać poleceń CLI praktycznie do każdego zadania dotyczącego środowiska OpenStack. Oto kilka linków:
Jak uzyskać dostęp do object storage za pomocą OpenStack CLI na NSIS
Jak utworzyć zestaw maszyn wirtualnych przy użyciu OpenStack Heat Orchestration na NSIS Cloud
Jak przenosić volume między domenami i projektami za pomocą klienta OpenStack CLI na NSIS
Jak przenosić volume danych między maszynami wirtualnymi za pomocą OpenStack CLI na NSIS
Aby używać maszyny wirtualnej poprzez konsolę, zobacz
Jak uzyskać dostęp do maszyny wirtualnej z konsoli OpenStack na NSIS Cloud