Skip to main content
  • »
  • CHMURA OPENSTACK »
  • Jak utworzyć maszynę wirtualną przy użyciu klienta OpenStack CLI na chmurze NSIS Cloud

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
../_images/openstack_server_create_help1.png

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:

../_images/create_vm_cli_11.png

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.

../_images/Screenshot_20241006_1240041.png

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
../_images/Screenshot_20241006_1252341.png

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
../_images/Screenshot_20241006_1326191.png

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:

../_images/Screenshot_20241006_1256511.png

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:

../_images/Screenshot_20241006_1308171.png

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:

../_images/Screenshot_20241006_1321131.png

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:

../_images/Screenshot_20241006_1335241.png

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:

../_images/Screenshot_20241006_1347491.png

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:

../_images/Screenshot_20241006_1352291.png

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
../_images/Screenshot_20241006_1434341.png

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:

../_images/Screenshot_20241006_1458441.png

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