Tak więc ty też byłeś rozczarowany, widząc, że nie ma wstępnie zbudowanego obrazu Fedory z Google w Google Compute Engine (GCE)? Dobra wiadomość jest taka, że dzięki temu brakującemu obrazowi zbudujesz własny niestandardowy obraz, a zatem nauczysz się ważnego aspektu Google Cloud Platform (GCP). Oznacza to obszerne dostosowanie maszyn wirtualnych, jeśli chcesz.
Przed rozpoczęciem, krótka rzecz, którą musisz wiedzieć. VMS są naprawdę podobne do komputerów, ale już to wiesz, prawda? Być może nie wiesz, że obrazy w GCE są wstępnie zbudowanym systemem operacyjnym, który komputer wirtualny będzie miał przy pierwszym uruchomieniu. To bardzo tak, jakby kupując komputer, dostajesz go z (niestety) wstępnie zainstalowaną wersją systemu Windows zainstalowanej na dysku twardym. A kiedy uruchomisz się po raz pierwszy, uruchomiłby tę wstępnie zainstalowaną wersję, która jest taka sama dla wszystkich komputerów tego modelu/producenta.
W Google Compute Engine wszystko jest tak samo. Podczas utworzenia instancji musisz gdzieś zacząć, aby pozwolił Ci wybrać wstępnie zainstalowany Linuks do uruchomienia, zwany także „obrazem”. Zauważ, że niektórzy użytkownicy VM powiedzą „W maszynach wirtualnych zwykle zaczynamy uruchamiać się za pośrednictwem CD ISO z asystentem konfiguracji”, ale zwykle maszyny silnikowe Compute Google Compute mają na celu uruchamianie bez opieki, a konfiguracja GUI w zasadzie temu zapobiegnie temu zapobiegałby temu.
W tym artykule zamierzamy:
To wszystko w silniku obliczeniowym Google.
Zdobądź wizerunek w chmurze Fedora w celu dostosowywania
Na początek musisz utworzyć maszynę wirtualną, w której zamierzamy zbudować i zmodyfikować oficjalny obraz Cloud Fedora. Utwórz instancję z następującymi opcjami:
Daj mu 2 minuty na początek, a następnie SSH do maszyny wirtualnej za pomocą przycisku „SSH”. Otworzy okno z SSH podłączonym do twojego zupełnie nowego VM Centos 7 Vm.
Pierwszą rzeczą, której potrzebujesz, jest zainstalowanie WGET. Możesz zainstalować Curl, jeśli wolisz, ale artykuł będzie używać WGET.
$ sudo mniam zainstalować wget |
Następnie, po zainstalowaniu, przejdź do https: // alt.Fedoraproject.Org/ Cloud/ i obok „Cloud Base Compressed Raw Image” kliknij prawym przyciskiem myszy „Pobierz” i skopiuj link adresowy.
Wróć do maszyny wirtualnej i wykonaj następujące czynności:
$ wget „Wklej adres URL tutaj” |
To pobranie pliku. Serwery Fedora, ich lustra i Google mają świetną infrastrukturę, więc pobieranie potrwa zaledwie kilka sekund. Prawdopodobnie mój drugi ulubiony moment administracji chmur!
Po zakończeniu uruchom to polecenie:
$ xz - -decompress -keep „Fedora-Cloud-Base-XX-X.X.x86_64.surowy.xz " |
Zauważ, że musisz dostosować nazwę pliku w zależności od pobieranej wersji. To wyodrębni rzadki plik ~ 3 GB, który możemy następnie zapętlić na drugi krok. Zajmie to minutę, więc zrób przerwę na kawę i wróć po zakończeniu.
Przygotowanie Fedory do jazdy Google Cloud Platform
Ok, więc jak nazywamy przygotowanie tutaj? Z grubsza jest to zamontowanie surowego dysku, chroot w nim, dodaj trochę oprogramowania, aby mógł używać wszystkich funkcji GCP, a następnie wreszcie wyczyścić różne pliki tymczasowe.
Ok, zamontujmy to:
$ Mkdir uruchomić |
$ sudo uchwyt -o Pętla, przesunięcie = 1048576 „$ Pwd/fedora-cloud-base-xx-x.X.x86_64.surowy" |
„$ PWD/BOOT” |
Jeszcze raz dostosuj nazwę pliku.
Okej, widzę, że tak naprawdę nie rozumiesz tego wiersza poleceń, więc czas na wyjaśnienie. To polecenie mówi Linux: Weź plik z dysku, działaj tak, jakby to była partycja dysku i spróbuj go zamontować. To jest zasada mocowania pętli. Ale zauważysz również „offset = 1048576”. Jest przesunięcie, ponieważ ten surowy dysk jest dysk, nie partycja. Jest partycjonowany, z bootloaderem, więc maszyna wirtualna wie, co robić podczas startupu. Ale nie możemy zamontować ani chroot w bootloader, po prawej?
Tak więc ustawiając przesunięcie, Linux jest w rzeczywistości, zamontując pierwszą partycję surowego dysku przechowywanego w pliku. Jest to partycja ext4 i pozostawienie wystarczającej ilości miejsca na rozładowanie, pierwsze partycje zwykle uruchamiają 1 MIB po początku dysku. Stąd przesunięcie. Następny:
$ płyta CD uruchomić |
$ sudo uchwyt --bind /dev dev && sudo uchwyt --Bind /Sys Sys && sudo uchwyt --Bind /Proc Proc && sudo uchwyt --wiązać /etc /resolv.conf itp./Resolv.conf |
$ sudo Chroot .//usr/bin/ grzmotnąć |
A teraz witamy w Raw Chroot zamontowany na Fedora Loop! Więc dlaczego to wszystko? Najpierw zamontujemy wszystko, co potrzebne do pracy, /dev, /proc i /sys. Również montujemy Bind Resolv.Conf, ponieważ w przeciwnym razie chroot nie ma dostępu do Internetu (!). Wreszcie, w to wchodzimy. Zauważ, że używamy /usr/bin/bash ponieważ /kosz w Fedorze jest symbolizacją /usr/bin.
Teraz nadszedł czas, aby zainstalować oprogramowanie Google Cloud Platform, aby działało dobrze.
Pierwszą rzeczą, którą możesz chcieć zrobić, to mieć aktualny obraz. Jest lepiej, nie? Więc:
# DNF Upgrade --assumeyes --NogpgCheck „*” |
Jeszcze raz okazja na łyk kawy, ponieważ zajmie to trochę czasu. „-NogpgCheck” jest tym, że kontrola GPG i chroot nie działa zbyt dobrze. Następnie zrób to:
# cat> "/etc/yum.repozytorium.D/Google-Cloud.repo " <<"EOR" |
[Google-Cloud-Compute] |
Nazwa = Google Cloud Compute |
baseurl = https: // pakiety.Chmura.Google.com/yum/repos/Google-Cloud-Compute-EL7-x86_64 |
włączone = 1 |
GPGCheck = 1 |
repo_gpgcheck = 1 |
gpgkey = https: // pakiety.Chmura.Google.com/yum/doc/yum-key.GPG |
https: // pakiety.Chmura.Google.com/yum/doc/rpm-package-key.GPG |
Eor |
I robić:
# dnf instalacja-nogpgcheck --assumeyes Google-compute-ingine Python-Google-Compute-Engine |
To zainstaluje całe oprogramowanie związane z Google, aby być najlepiej kompatybilne z Google Compute Engine. Na przykład pozwoli ci to sprawdzić/odznaczyć przekazywanie IP z interfejsu Google Cloud Platform lub używać SSH w przeglądarce zamiast konieczności jawnego tworzenia klawisza SSH dla maszyny wirtualnej. Następny:
# dotykać "/.Autorelabel " |
# dnf czyść wszystko |
Jak wiecie, jedną z najlepszych rzeczy w Fedorze, jest jej funkcje bezpieczeństwa i jakość na poziomie przedsiębiorstw, a Selinux jest jej częścią. Aby uniknąć bólu głowy, wcalenia się od pierwszego uruchomienia VM.
Robi to, ponieważ etykiety w Selinux są błędne w środowisku chroot i zapominanie o tym małym kroku sprawia, że maszyna wirtualna jest nieobowiązkowa i nieosiągalna z zewnątrz. Powyższa aktualiza. Zauważ, że oznacza to, że pierwszy uruchamianie VM może potrwać kilka minut, zanim będzie gotowy.
Oczyszczanie DNF pozwala zachować jak najbardziej mały obraz. To oszczędza koszty wielokrotnego przechowywania rzeczy, których nie potrzebujesz.
Czas wyjść z chroot:
# Wyjście |
$ płyta CD … / |
Teraz wyszedłeś z katalogu montowanego w pętli, możesz zdjąć rzeczy montowane na wiązaniu:
$ sudo Umount boot/dev boot/proc boot/sys boot/etc/resolv.conf |
A potem zróbmy to:
$ sudo FSTRIM -BOOT |
To pomaga utrzymać obraz zamontowany na pętle. Zasadniczo podczas aktualizacji surowy obraz będzie szybko wypełniony strefami plików tymczasowych. W przeciwieństwie do prawdziwych dysków twardych, gdy plik zostanie usunięty na surowym obrazie, jest po prostu usuwany w metadanych systemie plików surowego obrazu nadal używa przestrzeni na dysku twardym hostującym surowy obraz. FSTRIM pozwala na wykonanie tych nieużywanych stref „rzadkich”, więc ta przestrzeń usuniętych plików jest zwracana z powrotem na dysku.
Teraz niezmieni się urządzeniem montowanym w pętli:
$ sudo Umount uruchomić |
$ mv „Fedora-Cloud-Base-XX-X.X.x86_64.surowy" "dysk.surowy" |
$ smoła --Utwórz-Auto-Compress -- plik = „Fedora-Cloud-Base-XX-X.X.x86_64.smoła.GZ " --rzadki dysk.surowy |
Ok, fajnie, masz teraz swój ostateczny obraz, zapakowany! Rozmiar dla mnie to około 350 MIB, maleńki eh? Teraz pamiętasz, kiedy powiedziałem, że musisz zwrócić uwagę na strefę? To jest teraz potrzebujesz!
Udaj się do Google Cloud Storage i utwórz wiadro. Zakładam, że nie masz już wiadra we właściwej strefie, w przeciwnym razie jest w porządku, aby użyć wcześniej istniejącego. Utwórz więc wiadro z następującymi opcjami:
Poczekaj, aż wiadro zostanie utworzone, a po zakończeniu idź ponownie do okna SSH i zrób:
$ gsutil CP „Fedora-Cloud-Base-XX-X.X.x86_64.smoła.GZ " „GS: // [Nazwa wiadra]/” |
Kopiuje to obraz zapakowany do Google Cloud Storage, abyśmy mogli powiedzieć GCP: Weź to .smoła.GZ i uczyń go obrazem.
Teraz możesz w tym momencie zamknąć instancję. Nie usuwaj jeszcze tego, ponieważ przetestujemy instancję Fedora przed usunięciem tej wersji VM kompilacji.
Teraz w Google Compute Engine wejdź do „obrazów”. Naciśnij przycisk „Utwórz obraz”. Skonfiguruj to w ten sposób:
I to wszyscy ludzie!
Faza testowa
Ok, ale nie byłby to prawdziwy instruktaż, gdybyśmy nie sprawdzili, czy działa zgodnie z oczekiwaniami. Aby sprawdzić, czy działało świetnie, przejdź do „instancji VM”, a następnie kliknij „Utwórz instancję”.
Skonfiguruj instancję w ten sposób:
Teraz będziesz czekać 5 minut, wystarczająco dużo czasu, aby wyczyścić klawiaturę! A po tych 5 minutach możesz teraz kliknąć przycisk „SSH”.
A teraz, miejmy nadzieję, brawo, jesteś zalogowany do swojej maszyny wirtualnej Fedora, uruchamiana przez Google Cloud! W tym momencie nie zapomnij usunąć testowej maszyny wirtualnej i maszyny wirtualnej kompilacji.
Mam nadzieję, że podobał ci się samouczek i będzie to dla ciebie ładnie działać. To wszyscy ludzie (tym razem) i do zobaczenia w VM Fedora!