Tworzenie serwera EuroLinux w infrastrukturze chmurowej

Tworzenie serwera EuroLinux w infrastrukturze chmurowej

W tym artykule przybliżymy proces tworzenia serwera EuroLinux za pomocą interfejsu wiersza poleceń w największych światowych chmurach, takich jak Amazon Web Services, Microsoft Azure oraz Google Cloud Platform.

Linux jest wszędzie – jest też w chmurach. W dzisiejszym artykule przybliżymy proces tworzenia serwera EuroLinux za pomocą interfejsu wiersza poleceń w największych światowych chmurach.

W świecie IT mówiąc o chmurach, mamy na myśli przede wszystkim wirtualne maszyny, pamięć czy też bazy danych. Są one dostępne do wykupienia w specjalnie do tego zaprojektowanych centrach danych. Najczęściej oferowane są w ramach modelu IaaS (Infrastructure as a Service). Infrastruktura stworzona w taki sposób jest łatwo dostępna, można ją bardzo łatwo skalować i bywa, choć nie zawsze, oszczędna w kosztach. Nic więc dziwnego, że coraz więcej przedsiębiorstw korzysta z chmury. Widać to bardzo często podczas zdarzających się awarii tychże centrów. Niemniej, trend dążenia do centralizacji zasobów jest nadal dobrze zauważalny.

Chmury mają też inną, równie przydatną właściwość – można dzięki nim w prosty i przyjazny sposób wypróbować różne możliwości rozwoju struktury firmy. Na przykład, mając fizyczne serwery oparte o system Red Hat® Enterprise Linux®, można za pomocą chmur sprawdzić działanie alternatywnego, tańszego systemu klasy Enterprise.

Przegląd najchętniej wybieranych chmur

Największe firmy udostępniające usługi chmurowe to Google Cloud, AWS i Azure. Nazwy te pojawiają się bardzo często podczas dyskusji na temat najlepszej, najtańszej czy najbezpieczniejszej chmury. Jednak rzadko wspomina się o chińskiej propozycji – Alibaba Cloud, która, wierząc wykresom, zajmuje wyższą pozycję od chmury Google. Przyjrzyjmy się bliżej wykresowi popularności tej frazy w wyszukiwarce Google.

EuroLinux w chmurze

Według Google Trends najczęściej wyszukiwaną chmurą w serwisie Google jest obecnie AWS (Amazon Web Services) – kolor żółty, który nieznacznie przoduje nad chmurą Microsoft Azure (niebieski). Na dalszych pozycjach plasuje się Alibaba (czerwony) i najniżej Google Cloud (zielony). Trzeba zauważyć, że wyszukiwania frazy Google Cloud Platform czy skrótu GCP miały jeszcze mniej wyszukań w porównaniu z samym Google Cloud. Pojawienie się Googla na 4 miejscu ma zapewne charakter nieobiektywny. Są tego dwa powody. Warto zauważyć, że Microsoft i Amazon, stworzyli dedykowane marki dla swoich usług chmurowych a Google używa długiej dwuczłonowej nazwy i w ten sposób traci w tego rodzaju statystykach. Z drugiej strony wpisanie słowa „cloud” w najpopularniejszej wyszukiwarce (czyli Google) na pierwszych 5 miejscach podpowiada chmurę Google, co niewątpliwie dostarcza dodatkowego ruchu tej platformie.

Serwer EuroLinux w chmurze

Aktualnie obrazy systemu EuroLinux znajdują się w 3 chmurach: Amazon Web Services, Microsoft Azure oraz Google Cloud Platform. Nasz zespół prowadzi zaawansowane prace, dzięki którym w wkrótce EuroLinux będzie dostępny także w Alibaba Cloud.

Standardowo serwer z systemem operacyjnym EuroLinux można stworzyć na dwa całkowicie różne sposoby – przez przeglądarkę i wypełnianie formularza oraz przez interfejs wiersza poleceń (CLI). Poniższa instrukcja przeprowadza użytkownika przez cały proces tworzenia serwera, wykorzystując do tego odpowiednio przystosowane CLI.

Amazon Web Services

Aby rozpocząć tworzenie serwera na platformie AWS za pomocą CLI, należy najpierw, oprócz posiadania konta na platformie AWS, upewnić się, że mamy utworzony access key ID i secret access key. W przeciwnym razie należy postępować zgodnie z instrukcją zamieszczoną na stronie AWS.

Kolejnym krokiem jest zainstalowanie odpowiedniej wersji AWS CLI zgodnej z systemem operacyjnym i jego architekturą. Szczegóły możemy znaleźć tutaj.

Posiadając już AWS CLI, należy skonfigurować konto. W tym celu wywołujemy komendę aws configure, w której podajemy nowo utworzony klucz do konta AWS, region – przykładowo us-east-1 – oraz format, w którym ma zwracać informacje, na przykład json. W pełni skonfigurowane CLI pozwala na kontrolę prawie wszystkich elementów AWS dostępnych z poziomu strony internetowej. Teraz jednak przyjrzyjmy się bliżej samemu tworzeniu serwera EuroLinux.

1. Pierwszym krokiem będzie pozyskanie interesującego nas ImageId. Aby to zrobić, najwygodniej jest wylistować wszystkie publicznie dostępne obrazy EuroLinux za pomocą komendy describe-images i przefiltrować je po nazwie, dodając flagę --filters. Dla czytelności ograniczymy otrzymany opis obrazów za pomocą komendy grep.

aws ec2 describe-images --filters "Name=name,Values=centos-eurolinux*" | grep 'ImageId\|Description'

2. Mając już wybrany ImageId proces tworzenia serwera należy rozpocząć od utworzenia klucza, dzięki któremu będziemy mogli połączyć się z utworzoną instancją. Aby utworzyć nowy klucz, należy wykonać poniższą komendę, zmieniając nazwę MyKeyPair na swoją nazwę klucza. Wygenerowany klucz zapisujemy w pliku MyKeyPair.pem.

aws ec2 create-key-pair --key-name MyKeyPair

Po utworzeniu i zapisaniu klucza należy zmienić dostęp do pliku MyKeyPair.pem:

sudo chmod 400 MyKeyPair.pem

3. Kolejnym potrzebnym elementem jest security-group, który tworzy się za pomocą komendy:

aws ec2 create-security-group --group-name MySecurityGroup --description "My default security group"

Aby można było połączyć się z instancją, oprócz samego stworzenia security-group, należy również nadać mu odpowiednie dostępy. Wpierw musimy się dowiedzieć się, jaki mamy adres IP. Można to łatwo sprawdzić, wpisując komendę:

curl https://checkip.amazonaws.com

Następnie możemy utworzyć regułę, zmieniając security-group-id na odpowiedni id grupy i x.x.x.x na adress IP, któremu chcemy nadać dostęp:

aws ec2 authorize-security-group-ingress --group-id security-group-id --protocol tcp --port 22 --cidr x.x.x.x/32

4. W ten sposób uzyskaliśmy wszystkie elementy potrzebne do stworzenia serwera EuroLinux w zasobach AWS. Należy wykonać poniższą komendę, aby utworzyć jedną instancję na maszynie t2.micro:

aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids security-group-id

Warto sobie zapisać publiczny adres IP, na którym dostępna jest maszyna.

5. Aby zalogować się na serwer, należy wykonać prostą komendę ssh, podając wcześniej utworzony klucz oraz zapisany publiczny adres IP maszyny. Domyślna nazwa użytkownika różni się w zależności od wersji systemu EuroLinux. Najlepszym sposobem, aby dowiedzieć się, jakiego użytkownika należy wybrać, jest próba zalogowania się jako root:

ssh -i "MyKeyPair.pem" [email protected]

W odpowiedzi otrzymamy informację podobną do tej: Please login as the user “cloud-user” rather than the user “root”.

6. Zatrzymać serwer możemy za pomocą komendy aws ec2 stop-instances. Natomiast w sytuacji, gdy musimy zwolnić zasoby, warto skorzystać z komendy terminate-instances.

Microsoft Azure

Tworzenie serwera na platformie Azure może wydawać się łatwiejsze niż na AWS, choć obie chmury mają dużo wspólnego. Gdy już posiadamy konto w serwisie Microsoft Azure, przechodzimy do zainstalowania Azure CLI zgodnego z posiadanym systemem operacyjnym. Szczegółowa instrukcja instalacji znajduje się na stronie Microsoftu.

Następnie należy zalogować się do interfejsu, podając nazwę użytkownika i hasło, tak jak podczas logowania na stronie. Wystarczy wpisać poniższą komendę:

az login -u AZURE_USERNAME -p AZURE_PASSWORD

Po zalogowaniu do Azure CLI, mamy możliwość manipulowania zasobami prawie tak jak z poziomu strony internetowej. Jednak teraz, tak jak w przypadku AWS, dokładniej przyjrzyjmy się tworzeniu serwera.

1. Tak jak poprzednio, najpierw szukamy odpowiedniego obrazu, a konkretnie jego Urn, z którego stworzymy serwer EuroLinux. Aby to zrobić, należy wykonać poniższą komendę (wyszukiwanie konkretnych obrazów w całej bazie danych może trwać około minuty):

az vm image list --offer EuroLinux -all --output table

2. Mając wybrany konkretny obraz systemu EuroLinux i jego Urn, jedyne czego nam brakuje to resource-group, który utworzymy, wykonując następującą komendę i zamieniając myResourceGroup na nazwę nowej grupy zasobów. Lokalizację można ustawić według uznania:

az group create --name myResourceGroup --location westeurope

3. Teraz, aby stworzyć serwer EuroLinux w infrastrukturze Azure Cloud, wystarczy wpisać komendę, uprzednio zmieniając nazwę grupy, nazwę instancji i Urn dla obrazu na właściwy (warto również zmienić hasło na trudniejsze):

az vm create --resource-group myResourceGroup --name eurolinuxServer --image Urn --authentication-type password --admin-username azureuser --admin-password SecretPassword12345!

4. Po pomyślnym utworzeniu serwera na Azure wyświetli się lista z najważniejszymi informacjami, w tym publiczny adress IP maszyny. Aby zalogować się na serwer, użyjemy wspomnianego wcześniej adresu, wykonując poniższą komendę:

ssh [email protected]

Następnie podajemy hasło dla użytkownika, takie samo jak podczas tworzenia serwera.

5. Po zakończeniu prac na serwerze możemy go usunąć w następujący sposób (podając po fladze -g nazwę resourceGroup, a po fladze -n nadaną wcześniej nazwę maszyny):

az vm delete -g myResourceGroup -n eurolinuxServer –yes

Google Cloud Platform

Obrazy systemu EuroLinux są dostępne również w chmurze Google Cloud Platform. Aby z nich skorzystać i stworzyć własny serwer, należy zainstalować konsolowe narzędzie gcloud CLI zgodne z posiadanym systemem operacyjnym. Szczegółowe informacje na ten temat znajdują się na stronie producenta.

1. Po zainstalowaniu CLI, trzeba go skonfigurować. W tym celu należy stworzyć klucz autoryzacyjny zgodnie z instrukcją zamieszczoną tutaj, a następnie użyć go, wywołując następującą komendę (zastępując my_key.json nazwą pliku z kluczem):

gcloud auth activate-service-account –key-file=my_key.json

2. Następnym krokiem jest wybór lub stworzenie projektu, w którym będziemy wykonywać kolejne operacje. Aby utworzyć nowy projekt, należy wykonać następującą linię (będąc w organizacji trzeba pamiętać o dodaniu flagi –organization=id_organizacji):

gcloud projects create my-project

Natomiast, aby ustawić projekt jako domyślny, należy w gcloud CLI wywołać polecenie:

gcloud config set project my-project

3. Po poprawnym utworzeniu projektu możemy stworzyć własny serwer. W tym celu potrzebujemy jedynie uri danego obrazu dostępnego na Google Cloud Platform. Przykładowym uri dla EuroLinux 8.6 jest: https://www.googleapis.com/compute/v1/projects/eurolinux-cloud/global/images/eurolinux-8-6. Aby utworzyć własny serwer na platformie Google`a, wystarczy uruchomić poniższą komendę, która stworzy serwer EuroLinux 8.6 na maszynie n1-standard-1 w regionie us-central1-a:

gcloud beta compute instances create eurolinux-server1 --zone=us-central1-a --machine-type=n1-standard-1 --subnet=default --image=https://www.googleapis.com/compute/v1/projects/eurolinux-cloud/global/images/eurolinux-8-6 –boot-disk-size=10GB

4. Chcąc zakończyć działanie nowo utworzonej maszyny i usunąć wszelkie poczynione na niej zmiany, możemy wykonać polecenie:

gcloud compute instances delete eurolinux-server1 –zone=us-central1-a

Podsumowanie i przyszłość

W dzisiejszych czasach migracja na infrastrukturę chmurową jest rzeczą powszechną nie tylko ze względów ekonomicznych, ale również dzięki możliwości lepszego dostosowania się do szybko zmieniających się zewnętrznych warunków. Rozwiązania chmurowe doskonale sprawdzają się również podczas testów nowej struktury systemowej czy bazodanowej.

Firma EuroLinux tworzy bezpieczną i korzystną cenowo alternatywę dla systemów RHEL® czy też dla baz danych, takich jak Oracle® i udostępniamy ją w największych, światowych chmurach. Dzięki temu można łatwo porównać interesujące nas systemy i wybrać ten, który jest najbardziej korzystny. Oprócz sukcesywnego udostępniania produktów w głównych platformach chmurowych, kontynuujemy nasze działania w kolejnych regionach świata. Dlatego w najbliższej przyszłości zamierzamy zaoferować nasze produkty także przez Alibaba Cloud.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.