Jak przesłać niestandardowy obraz przy użyciu OpenStack CLI na NSIS Cloud
W tym samouczku, prześlesz niestandardowy obraz przechowywany na twoim komputerze lokalnym do chmury NSIS Cloud , używając klienta OpenStack CLI. Przesłany obraz będzie dostępny w ramach twojego projektu, obok domyślnych obrazów z chmury NSIS Cloud . Będziesz mógł tworzyć maszyny wirtualne za jego pomocą.
Co obejmuje ten artykuł
Jak sprawdzić, czy obraz jest już dostępny w twojej chmurze OpenStack
Jak różne obrazy mogą się zachowywać
Jak przesłać obraz, używając tylko poleceń CLI
Przykład: jak przesłać obraz dla Debiana 11
Co się dzieje, jeśli utracisz połączenie z Internetem podczas przesyłania
Wymagania wstępne
Nr 1 Konto
Potrzebujesz konta hostingowego NSIS Cloud z dostępem do interfejsu Horizon: https://horizon.cloudferro.com.
Nr 2 OpenStack CLI skonfigurowany
Potrzebujesz mieć klienta OpenStack CLI skonfigurowanego i działającego. Zobacz Jak zainstalować OpenStackClient dla systemu Linux na NSIS. Możesz przetestować, czy twój klient OpenStack CLI został prawidłowo aktywowany, wykonując polecenie openstack server list które jest wspomniane na końcu tego artykułu - powinno ono zwrócić listę twoich maszyn wirtualnych.
Nr 3 Niestandardowy obraz, który chcesz przesłać
Potrzebujesz mieć obraz, który chcesz przesłać. Może to być jeden z następujących formatów obrazów:
aki
ami
ari
iso
qcow2
raw
vdi
vhd
vhdx
vmdk
Następujące formaty kontenerów są obsługiwane:
aki
ami
ari
bare
docker
ova
ovf
Dla wyjaśnienia tych formatów, zobacz artykuł Jakie formaty obrazów są dostępne w chmurze OpenStack NSIS Cloud.
Nr 4 Przesłany klucz publiczny SSH
Jeśli obraz, który chcesz przesłać, wymaga od ciebie dołączenia klucza publicznego SSH podczas tworzenia maszyny wirtualnej, klucz ten będzie musiał być przesłany do chmury NSIS Cloud. Jeden z tych artykułów powinien ci pomóc:
Nr 5 Podstawowa wiedza o linii poleceń Linux
Podstawowa wiedza na temat wiersza poleceń Linuxa.
Zawsze używaj najnowszej wartości identyfikatora obrazu
Okresowo, domyślne obrazy systemów operacyjnych w chmurze NSIS Cloud są uaktualniane do nowszych wersji. W związku z tym, ich identyfikator obrazu ulega zmianie. Załóżmy, że identyfikator obrazu dla Ubuntu 20.04 LTS 574fe1db-8099-4db4-a543-9e89526d20ae był ważny w momencie pisania tego artykułu. Podczas pracy z artykułem, zwykle użyjesz bieżącej wartości identyfikatora obrazu i będziesz go używał zamiast 574fe1db-8099-4db4-a543-9e89526d20ae.
Teraz, załóżmy, że chcesz zautomatyzować procesy w OpenStack, 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 zapisany na stałe i gdy tylko ta wartość ulegnie zmianie podczas uaktualnienia, zautomatyzowany proces może przerwać swoje działanie.
Ostrzeżenie
Upewnij się, że twój kod automatyzacji używa bieżącej wartości identyfikatora obrazu systemu operacyjnego, a nie zakodowanej na stałe.
Krok 1: Sprawdź, czy obraz jest już dostępny w twojej chmurze OpenStack
Przed przesłaniem obrazu możesz sprawdzić, czy nie jest on już dostępny na chmurze NSIS Cloud . Załóżmy, że spełniłeś wszystkie wymagania wstępne, w tym uwierzytelnienie w kliencie OpenStack CLI, wykonaj poniższe polecenie:
openstack image list
Powinna pojawić się lista dostępnych obrazów, na przykład:
Krok 2: Poznaj reguły obrazu przed jego przesłaniem
Różne obrazy będą się zachowywać inaczej na chmurze NSIS Cloud , w zależności od tego, jak są one zbudowane.
- Dostęp SSH
Jeśli twój obraz ma włączony dostęp SSH, musisz wiedzieć, jaką nazwę użytkownika należy podać, aby uzyskać dostęp do maszyn wirtualnych utworzonych przy użyciu tego obrazu. Większość obrazów oczekuje, że użyjesz SSH do uzyskania dostępu i
pozwoli ci dostarczyć własną parę kluczy podczas instalacji oraz
użyje jej do uzyskania dostępu.
I jest też wiele obrazów, które nakazują użycie pary kluczy i oczekują, że zarówno
podasz ją podczas instalacji, a następnie
będziesz korzystał wyłącznie z niej.
Są również obrazy, które działają według zupełnie innych reguł - są one poza zakresem tego artykułu.
- Dostęp do konsoli WWW
Twój obraz może mieć domyślne konto, które można użyć do logowania się do konsoli internetowej. Może ono posiadać hasło lub nie.
- Uprawnienia
Konta użytkowników w obrazie mogą posiadać lub nie uprawnienia sudo.
Oto typowe reguły dla domyślnych obrazów z chmury NSIS Cloud:
- Konto o nazwie eoconsole
Możesz zalogować się do tego konta za pomocą konsoli WWW. Pierwsze logowanie nie wymaga podania hasła, ale będziesz musiał ustalić nowe hasło, aby uzyskać dostęp do tego konta przy nastęonym. Posiada ono uprawnienia sudo.
- Konto o nazwie eouser
To konto można uzyskać za pomocą SSH. Możesz się do niego uwierzytelnić, używając klucza SSH, który dostarczyłeś podczas tworzenia maszyny wirtualnej. Posiada ono również uprawnienia sudo. Będziesz używał tego konta w prawie wszystkich aplikacjach w ramach chmury NSIS Cloud.
Ten artykuł Jak uzyskać dostęp do maszyny wirtualnej z konsoli OpenStack na NSIS Cloud wyjaśnia, jak zalogować się do konsoli WWW jako użytkownik eoconsole, a następnie kontynuować korzystanie z niej jako użytkownik eouser. Jeśli niestandardowy obraz, który przesłałeś, obsługuje dostęp do konsoli WWW, możesz użyć konsoli WWW wspomnianej w tym artykule do tego celu. Proszę zauważyć jednak, że sposób interakcji z konsolą WWW może się różnić.
Przeciwnie, reguły dostępu do obrazu Debiana przesłanego w tym artykule (patrz poniżej) są następujące:
dostęp do konsoli WWW nie jest dozwolony, więc musisz używać klienta SSH z innej maszyny
możesz uzyskać dostęp do konta o nazwie debian, używając klucza SSH, który dostarczyłeś podczas tworzenia maszyny wirtualnej
Krok 3: Przesłanie obrazu
Załóżmy, że nadal chcesz przesłać obraz. Przejdź do folderu, który zawiera obraz, który chcesz przesłać, na przykład:
cd ~/my-images
Wykonaj poniższe polecenie. Zamień części tego polecenia, jak poniżej.
openstack image create --disk-format qcow2 --container-format bare --private --file ./image.qcow2 --min-disk 6 --min-ram 2048 image_name --fit-width
Znaczenie parametrów jest następujące:
- --disk-format
Zamień qcow2 na format obrazu - jeden z następujących: aki, ami, ari, iso, ploop, qcow2, raw, vdi, vhd, vhdx, vmdk. Jeśli nie określisz tego parametru, raw zostanie wybrany.
- --container-format
Zamień bare na nazwę formatu kontenera obrazu - jeden z następujących: ami, ari, aki, bare, docker, ova, ovf. Jeśli nie określisz tego parametru, bare zostanie wybrany.
- --file
Zamień ./image.qcow2 na nazwę i lokalizację pliku obrazu.
- --min-disk
Zamień 6 na wymagania magazynowe w gigabajtach - na przykład, pozostaw 6, jeśli chcesz używać tego obrazu tylko na dyskach wirtualnych, które mają co najmniej 6 GB.
- --min-ram
Zamień 2048 na wymagania dotyczące pamięci RAM dla twojego systemu operacyjnego w megabajtach - spowoduje to, że nie będą tworzone maszyny wirtualne z niewystarczającą ilością pamięci RAM.
- Nazwa obrazu
Ostatni parametr to nazwa, pod którą chcesz, aby twój obraz był znany przez OpenStack. Nie musi być taka sama jak nazwa pliku, który przesłaszesz. Aby ją ustawić, zmień image_name w powyższym poleceniu.
Reguły widoczności
Widoczność obrazu określa, które projekty mogą uzyskać dostęp do nowego obrazu. Możesz go ustawić na jeden z następujących sposobów:
private sprawia, że obraz jest widoczny w ramach twojego projektu. Można go ustawić, przekazując parametr --private do powyższego polecenia.
shared sprawia, że obraz jest widoczny w ramach twojego projektu i można go udostępnić innym projektom. Można go ustawić, przekazując parametr --shared do powyższego polecenia.
Proszę zauważyć, że te parametry:
nie przyjmują żadnych parametrów wejściowych,
możesz wybrać tylko jeden z nich w dowolnym momencie oraz
jeśli nie dodasz żadnego z tych parametrów, ustawia to widoczność na private.
Obrazy z ustawionym statusem widoczności na public mogą być widziane przez wszystkich użytkowników chmury. To uprawnienie, które jest zarezerwowane tylko dla administratorów chmury NSIS Cloud jako całości.
Administratorzy w ramach własnych organizacji również nie mogą używać --public, a jeśli zwykły użytkownik próbowałby przesłać ten typ obrazu, proces również zakończyłby się błędem.
- --fit-width
Opcjonalny parametr, który poprawia czytelność danych wyjściowych w niektórych okolicznościach. Próbuje dostosować szerokość danych wyjściowych do szerokości wyświetlacza i może być używany z wieloma poleceniami OpenStack.
Po wykonaniu powyższego polecenia rozpocznie się proces przesyłania. Nie powinien być wyświetlany żaden wynik, dopóki nie zostanie on ukończony.
Jeśli utracisz połączenie z internetem podczas przesyłania i ponownie się połączysz, proces może zostać wznowiony. W takim przypadku obraz powinien zostać pomyślnie przesłany. Jeśli jednak nie będzie to możliwe, będziesz musiał usunąć nieprawidłowo przesłany obraz i spróbować ponownie. Proszę zobacz sekcję Rozwiązywanie problemów - Usuwanie nieprawidłowo przesłanych obrazów na końcu tego artykułu.
Gdy proces zostanie zakończony, wynik powinien zawierać informacje o przesłanym obrazie, w tym jego identyfikator w polu id. Będzie on podobny do tego:
Następne kroki to:
skopiuj identyfikator,
zamień c85bc31a-8f90-41ec-b6a0-5bab863539da na skopiowany identyfikator w poniższym poleceniu i wykonaj je
openstack image show c85bc31a-8f90-41ec-b6a0-5bab863539da --fit-width
Upewnij się, że pole status przesłanego obrazu zawiera active lub saving. Jeśli nie jest to tak, oznacza to, że obraz został prawdopodobnie nieprawidłowo przesłany. Powinieneś usunąć ten obraz i spróbować ponownie. Więcej informacji można znaleźć w sekcji Rozwiązywanie problemów - Usuwanie nieprawidłowo przesłanych obrazów na końcu tego artykułu.
Jeśli status twojego obrazu jest saving, wykonaj ponownie polecenie wymienione powyżej, aż będzie on Active.
Jeśli twój obraz pozostaje w stanie saving przez zbyt długi czas, może to oznaczać, że coś poszło nie tak. W tym przypadku skontaktuj się z dzialem pomocy technicznej NSIS Cloud: Helpdesk i wsparcie.
Przykład: Jak przesłać obraz dla Debian 11
Ten przykład dotyczy przesłania oficjalnego obrazu QCOW2 dla Debian 11, który nie jest dostępny na chmurze NSIS Cloud jako domyślny.
Po pierwsze, przejdź do https://cloud.debian.org/images/cloud/bullseye/latest/ i pobierz obraz debian-11-generic-amd64.qcow2 na swój komputer:
Otwórz terminal, w którym masz dostęp do OpenStack CLI, i użyj polecenia source z odpowiednim plikiem RC jako parametrem, tak jak to zrobiłeś w Wymaganiu wstępnym nr 2.
Przejdź do folderu zawierającego ten obraz. Wykonaj następujące polecenie:
openstack image create --disk-format qcow2 --container-format bare --private --file ./debian-11-generic-amd64.qcow2 --min-disk 10 --min-ram 2048 Debian-custom-upload --fit-width
Powinno to przesłać obraz pod nazwą Debian-custom-upload z widocznością ustawioną na private. Wymagania dla tego obrazu zostaną ustawione na 10 GB minimalnego miejsca na dysku i 2 GB pamięci RAM - oczywiście możesz podać tu wartości według swojego wyboru. Jeśli chcesz ustawić widoczność na shared, zastąp parametr --private parametrem --shared.
Podczas procesu przesyłania nie powinno być wyświetlany żaden wynik. Gdy proces zostanie zakończony, wynik powinien zmienić się na ten:
Aby upewnić się, że przesłanie było pomyślne, skopiuj ID obrazu, który można zobaczyć w polu id. W poleceniu poniżej używamy c85bc31a-8f90-41ec-b6a0-5bab863539da, ale Ty musisz zastąpić je ID Twojego obrazu:
openstack image show c85bc31a-8f90-41ec-b6a0-5bab863539da --fit-width
Upewnij się, że pole Status zawiera Active:
Wykonaj następujące polecenie, aby zobaczyć dostępne obrazy jeszcze raz:
openstack image list
Teraz powinieneś zobaczyć swój obraz na liście.
Rozwiązywanie problemów - Utracona połączenie z internetem
Jeśli utracisz połączenie z internetem podczas przesyłania obrazu, proces zostanie wznowiony automatycznie, jeśli będziesz ponownie połączony w odpowiednim czasie. Następnie, po przesłaniu, otrzymasz wynik podobny do tego poniżej:
Możesz sprawdzić jego status, wykonując polecenie poniżej. W nim zastąp c85bc31a-8f90-41ec-b6a0-5bab863539da ID twojego obrazu, które skopiowałeś.
openstack image show c85bc31a-8f90-41ec-b6a0-5bab863539da
Jeśli status jest active, powinieneś być w stanie utworzyć maszynę wirtualną za pomocą tego obrazu.
Czasami jednak przesłanie nie zostanie ukończone pomyślnie. Polecenie openstack image list pokazywać będzie wtedy, że obraz nadal ma status queued, co oznacza, że przesłanie nadal jest w kolejce, oczekując na przesłanie:
Wtedy będziesz musiał usunąć ten obraz i spróbować przesłać go ponownie. Aby to zrobić, najpierw skopiuj ID obrazu z wyniku polecenia powyżej. Następnie wykonaj polecenie poniżej. W nim zastąp 54d9afea-129c-4f18-a7a8-c283b13efacd ID twojego obrazu, które skopiowałeś:
openstack image delete 54d9afea-129c-4f18-a7a8-c283b13efacd
Po tym możesz spróbować przesłać ponownie.
Co można zrobić dalej
Możesz również przesłać obrazy za pomocą dashboardu Horizon: Jak przesłać niestandardowy obraz do chmury NSIS Cloud za pomocą dashboardu OpenStack Horizon.
Po utworzeniu maszyny wirtualnej za pomocą twojego niestandardowego obrazu, możesz również skonfigurować dostęp do EODATA, repozytorium zawierającego dane obserwacji Ziemi. Artykuł zawiera informacje na temat tego, jak to zrobić, jeśli twój obraz jest oparty na Ubuntu, Debianie lub CentOS: Jak zamontować eodata przy użyciu s3fs w systemie Linux na NSIS.