Tworzenie maszyny wirtualnej jest nudne. Tworzenie setek jest czasochłonne. Cloud-init pozwala zautomatyzować tworzenie maszyn wirtualnych w Microsoft Azure.
Jeśli kiedykolwiek konfigurowałeś maszynę wirtualną, wiesz, jak to działa. Klikasz tu i tam, klikasz jeszcze trochę, a na koniec masz skonfigurowany system. Ale nadal musisz zainstalować oprogramowanie i skonfigurować maszynę wirtualną zgodnie z własnymi preferencjami.
Teraz wyobraź sobie, że chcesz skonfigurować setki maszyn wirtualnych. Kliknięcie w trakcie instalacji nie jest tak skuteczne. Zamiast tego musisz zautomatyzować ten proces tak bardzo, jak to możliwe, i właśnie tam pojawia się Cloud-init.
Przyjrzyjmy się, jak można zautomatyzować instalację systemu operacyjnego i konfigurację maszyny wirtualnej za pomocą usługi Cloud-init na platformie Microsoft Azure.
Dlaczego warto używać Cloud-init do automatyzacji tworzenia maszyn wirtualnych?
cloud-init to potężne narzędzie do automatyzacji wdrażania, które rozwija Canonical, firma stojąca za Ubuntu.
Dzięki Cloud-init możesz instalować i wdrażać systemy operacyjne Linux oraz konfigurować inne aspekty maszyny wirtualnej. Na przykład możesz użyć usługi Cloud-init do zakładania kont użytkowników, instalowania i konfigurowania oprogramowania, dodawania kluczy SSH, co tylko chcesz.
Obecnie większość dostawców usług w chmurze, takich jak Azure, Linode i Amazon Web Services (AWS), obsługuje inicjowanie w chmurze.
Chociaż Cloud-init wystartował w Ubuntu, teraz obsługuje wszystkie główne dystrybucje Linuksa, takie jak openSUSE, Debian, Red Hat Enterprise Linux (RHEL) itp.
Oprócz wdrażania oprogramowania w chmurze, możesz także użyć Cloud-init do konfigurowania i instalowania oprogramowania na lokalnych serwerach lub środowiskach wirtualnych, takich jak VirtualBox, KVM i VMware.
Wykorzystamy platformę chmurową Microsoft Azure do zautomatyzowania wdrażania serwera Ubuntu za pomocą usługi Cloud-init.
Krok 1: Tworzenie skryptu Cloud-init
Skrypty Cloud-init używają modułów do konfigurowania różnych aspektów systemu. Na przykład użyjesz użytkownicy moduł do konfigurowania informacji o użytkownikach i kontach oraz strażnik drutu moduł do konfiguracji WireGuard itp. Istnieje mnóstwo innych modułów, których można użyć po wyjęciu z pudełka.
Stwórzmy skrypt Cloud-init, aby zautomatyzować większość rzeczy, które konfigurujesz podczas konfigurowania nowej maszyny wirtualnej.
Stworzymy użytkownika o nazwie „mwiza” i przypiszemy mu hasło. Dla uproszczenia użyjmy zwykłego hasła tekstowego, ale jeśli chcesz, możesz je zaszyfrować. Ponadto dodaj klucz SSH użytkownika do autoryzowanych kluczy. Pozwala to później wyłączyć logowanie za pomocą hasła SSH w celu zwiększenia bezpieczeństwa.
Oprócz utworzenia nowego użytkownika skrypt powinien wykonać następujące czynności:
- Zapisywanie pliku: Utwórz prosty plik i zapisz w nim treść za pomocą pliki_zapisu moduł. Plik zostanie umieszczony w katalogu domowym. Możesz użyć tych samych koncepcji do tworzenia bardziej złożonych plików w przyszłości.
- Uruchomione polecenia: Uruchomimy proste polecenia do konfiguracji zapory UFW, ale może to być dowolne inne polecenie Linuksa. Wykorzystaj uruchom cmd moduł do uruchamiania dowolnego polecenia; jest podobny do uruchamiania poleceń Linuksa przez wykonywanie skryptów Bash.
- Konfigurowanie ustawień regionalnych: Spowoduje to ustawienie preferowanych ustawień regionalnych, takich jak układ klawiatury, preferowany język, strefa czasowa itp.
- Zainstaluj pakiety: Użyj swojego ulubionego menedżera pakietów, aby zainstalować pakiety w swoim systemie. Na przykład w systemach opartych na Debianie możesz użyć APT.
To tylko niektóre z modułów, których możesz użyć z Cloud-init; istnieje kilka innych modułów do automatyzacji wszelkiego rodzaju rzeczy.
Oto pełny skrypt Cloud-init służący do konfigurowania nowego konta użytkownika. Pamiętaj, aby zamienić klucz SSH na właściwy. Możesz także zmienić nazwę użytkownika i wszelkie inne szczegóły.
vim: składnia=yaml
# Tutaj dodaj użytkowników systemu
użytkownicy:
- nazwa: mwiza
grupy: użytkownicy, sudo
powłoka: /bin/bash
gecos: mwiza
plain_text_passwd: Live-śmiech-miłość12345G123
lock_passwd: fałsz
ssh_authorized_keys:
- ssh-ed25519 BSHSDSDS3NzaC1sdfSDGSDSDJ1KSDB: PWELJWEEWeKBrkXWbLJBs; ldfkagfafkC6li71Ra6i+NKkajdfi [email protected]# Instaluj, aktualizuj i aktualizuj pakiety
aktualizacja_pakietu: prawda
aktualizacja_pakietu: prawda
package_reboot_if_require: prawdapakiety:
- Trasa śledzenia
- narzędzia sieciowe
- fail2ban# Ustaw języki
język: en_UK
strefa czasowa: Etc/UTC
klawiatura:
układ: nbpliki_zapisu:
- ścieżka: /etc/salt/minion.d/master_ip_port.conf
treść: |
mistrz: sól
główny_port: 4506
port_opublikowania: 4505
- ścieżka: /home/mwiza/cloud-init.txt
treść: |
utworzone przez cloud-init na platformie Azure# Uruchamianie poleceń Bash w celu konfigurowania oprogramowania i usług
uruchom cmd:
- ufw włącz
- ufw zezwól na ssh
- ufw pozwala na 80
- systemctl włącz ufw
# Wyłącz maszynę wirtualną po zakończeniu inicjowania
wyłączenie: wyłączenie zasilania
Skrypt Cloud-init używa YAML, więc upewnij się, że wcięcie jest poprawne, w przeciwnym razie nie będzie działać zgodnie z oczekiwaniami.
Krok 2: Tworzenie zasobu maszyny wirtualnej
Następnym krokiem jest utworzenie niezbędnego zasobu na platformie Azure dla maszyny wirtualnej. Zaloguj się na platformie Azure, jeśli masz już konto, lub utwórz bezpłatne konto próbne, przechodząc do azure.microsoft.com.
Na stronie głównej Azure Portal kliknij plik Utwórz zasób przycisk. Z listy najpopularniejszych usług Azure wybierz Maszyna wirtualna.
Następna strona zawiera informacje dotyczące tworzenia zasobów maszyny wirtualnej, takich jak dysk twardy, sieć itp.
Nadaj swojej maszynie wirtualnej zrozumiałą nazwę i wybierz region wdrożenia. Utwórz również grupę zasobów dla swojej maszyny wirtualnej lub użyj istniejącej.
Pod Uwierzytelnianie typ, wybierz Hasło opcję i podaj swoją nazwę użytkownika i silne hasło.
Po wypełnieniu wszystkich pól na tej stronie Twoje dane powinny wyglądać podobnie do poniższych.
Krok 3: Dodanie skryptu Cloud-init
Następnie kliknij na Zaawansowany kartę, aby dodać skrypt Cloud-init. Skopiuj i wklej skrypt Cloud-init z pierwszego kroku do niestandardowego pola danych.
Na koniec kliknij na Przejrzyj + utwórz przycisk. Jeśli wszystko jest w porządku, test przejdzie pomyślnie. W przeciwnym razie kreator maszyny wirtualnej platformy Azure przeprowadzi Cię przez poprawki, które należy wprowadzić.
Krok 4: Logowanie do maszyny wirtualnej
Skorzystaj z informacji ogólnych o maszynie wirtualnej, aby uzyskać publiczny adres IP maszyny wirtualnej i zalogować się przez SSH. Jeśli użyłeś prawidłowego klucza SSH, system nie wyświetli monitu o podanie hasła użytkownika.
Po zalogowaniu możesz sprawdzić, czy pliki, które chciałeś utworzyć za pomocą skryptu, są tam. Również, poszukaj zainstalowanych pakietów z APT i sprawdź, czy zapora została poprawnie skonfigurowana przy użyciu pliku Sudo ufw stan Komenda.
Cloud-init rejestruje również ważne informacje w pliku /var/log/cloud-init.log plik. Zawiera szczegółowe komunikaty o wszystkich zdarzeniach, które miały miejsce podczas inicjowania w chmurze. Możesz sprawdzić ten plik za pomocą polecenia cat w następujący sposób:
cat /var/log/cloud-init.log
Zautomatyzuj tworzenie maszyn wirtualnych za pomocą Cloud-init
cloud-init to potężne narzędzie, które pomaga zautomatyzować instalację i konfigurację systemu Linux. Możesz go używać w chmurze i na serwerach lokalnych. Niezależnie od tego, czy chcesz po prostu zautomatyzować wdrożenie maszyny wirtualnej, czy też potrzebujesz wdrożyć serwery Linux na dużą skalę, Cloud-init to doskonały wybór.
W związku z tym zawsze zabezpieczaj swoje loginy SSH dla maszyn wirtualnych opartych na chmurze, aby uniknąć naruszeń bezpieczeństwa.