Vytváření virtuálního stroje je nuda. Vytváření stovek je časově náročné. cloud-init vám umožňuje automatizovat vytváření virtuálních strojů v Microsoft Azure.

Pokud jste někdy nastavili virtuální stroj, víte, jak to funguje. Kliknete sem a tam, ještě se proklikáte a nakonec máte systém nastavený. Ale pak ještě musíte nainstalovat software a nakonfigurovat VM podle vašich preferencí.

Nyní si představte, že chcete nastavit stovky virtuálních počítačů. Proklikávání se instalací není tak efektivní. Místo toho musíte proces co nejvíce zautomatizovat, a to je místo, kde přichází cloud-init.

Pojďme se podívat na to, jak můžete automatizovat instalaci OS a konfiguraci virtuálních strojů pomocí cloud-init v Microsoft Azure.

Proč používat cloud-init k automatizaci vytváření virtuálních počítačů?

cloud-init je výkonný nástroj pro automatizaci nasazení, který Canonical, společnost stojící za Ubuntu, vyvíjí.

S cloud-init můžete nainstalovat a nasadit operační systémy Linux a nakonfigurovat další aspekty virtuálního počítače. Cloud-init můžete například použít k nastavení uživatelských účtů, instalaci a konfiguraci softwaru, přidávání klíčů SSH, cokoli jiného.

instagram viewer

V současnosti většina poskytovatelů cloudových služeb, jako je Azure, Linode a Amazon Web Services (AWS), podporuje cloud-init.

Přestože cloud-init začal na Ubuntu, nyní podporuje všechny hlavní linuxové distribuce, jako je openSUSE, Debian, Red Hat Enterprise Linux (RHEL) atd.

Kromě nasazení softwaru v cloudu můžete cloud-init použít také ke konfiguraci a instalaci softwaru na on-prem servery nebo virtuální prostředí, jako jsou VirtualBox, KVM a VMware.

Cloudovou platformu Microsoft Azure použijeme k automatizaci nasazení serveru Ubuntu pomocí cloud-init.

Krok 1: Vytvoření skriptu cloud-init

cloud-init skripty používají moduly pro konfiguraci různých aspektů vašeho systému. Použijete například uživatelů modul pro konfiguraci uživatelských informací a účtů a drátěný strážce modul pro konfiguraci WireGuard atd. Existuje spousta dalších modulů, které můžete použít ihned po vybalení.

Pojďme vytvořit cloud-init skript pro automatizaci většiny věcí, které konfigurujete při nastavování nového virtuálního počítače.

Vytvoříme uživatele s názvem „mwiza“ a přiřadíme mu heslo. Pro zjednodušení použijme heslo ve formátu prostého textu, ale pokud chcete, můžete jej zašifrovat. Kromě toho přidejte klíč SSH uživatele k autorizovaným klíčům. To vám umožní později zakázat přihlášení pomocí hesla SSH pro lepší zabezpečení.

Kromě vytvoření nového uživatele by měl skript provést následující:

  • Zápis souboru: Vytvořte jednoduchý soubor a zapište do něj obsah pomocí write_files modul. Soubor bude umístěn do domovského adresáře. Stejné koncepty můžete v budoucnu použít pro vytváření složitějších souborů.
  • Spuštěné příkazy: Spustíme jednoduché příkazy pro konfiguraci brány firewall UFW, ale může to být jakýkoli jiný příkaz Linux. Využijte runcmd modul pro spuštění libovolného příkazu dle vašeho výběru; je to podobné jako spouštění příkazů Linuxu pomocí spouštění Bash skriptů.
  • Konfigurace národních prostředí: Tím nastavíte preferovaná národní prostředí, jako je rozložení klávesnice, preferovaný jazyk, časové pásmo atd.
  • Nainstalujte balíčky: K instalaci balíčků do vašeho systému použijte svého oblíbeného správce balíčků. Například na systémech založených na Debianu můžete použít APT.

To jsou jen některé z modulů, které můžete použít z cloud-init; existuje několik dalších modulů pro automatizaci nejrůznějších věcí.

Zde je úplný skript cloud-init pro konfiguraci nového uživatelského účtu. Nezapomeňte vyměnit klíč SSH za správný. Neváhejte také změnit uživatelské jméno a jakékoli další podrobnosti.

vim: syntax=yaml

# Zde přidejte uživatele systému
uživatelé:
- jméno: mwiza
skupiny: uživatelé, sudo
shell: /bin/bash
gecos: mwiza
plain_text_passwd: Live-laugh-love12345G123
lock_passwd: false
ssh_authorized_keys:
- ssh-ed25519 BSHSDSDS3NzaC1sdfSDGDSDJ1KSDB: PWELJWEEEWeKBrkXWbLJBs; ldfkagfafkC6li71Ra6i+NKkajdfi [email protected]

# Instalujte, aktualizujte a upgradujte balíčky
package_upgrade: true
package_update: true
package_reboot_if_require: true

balíčky:
- traceroute
- síťové nástroje
- fail2ban

# Nastavit národní prostředí
národní prostředí: en_UK
časové pásmo: atd/UTC
klávesnice:
rozložení: nb

write_files:
- cesta: /etc/salt/minion.d/master_ip_port.conf
obsah: |
mistr: sůl
master_port: 4506
publish_port: 4505
- cesta: /home/mwiza/cloud-init.txt
obsah: |
vytvořené cloud-init v azurové barvě

# Spouštění příkazů Bash pro konfiguraci softwaru a služeb
runcmd:
- povolit ufw
- ufw povolit ssh
- ufw povolit 80
- systemctl povolit ufw

# Po dokončení inicializace vypněte VM
vypnutí: vypnutí

Skript cloud-init používá YAML, takže se ujistěte, že je odsazení správné, jinak to nebude fungovat podle očekávání.

Krok 2: Vytvoření prostředku virtuálního stroje

Dalším krokem je vytvoření potřebného prostředku v Azure pro virtuální počítač. Přihlaste se do Azure, pokud již máte účet, nebo si vytvořte bezplatný zkušební účet tak, že přejdete na azure.microsoft.com.

Na domovské stránce Azure Portal klikněte na Vytvořte zdroj knoflík. Ze seznamu nejoblíbenějších služeb Azure vyberte Virtuální stroj.

Další stránka poskytuje informace pro vytváření prostředků virtuálních počítačů, jako je pevný disk, sítě atd.

Dejte svému virtuálnímu počítači smysluplný název a vyberte oblast nasazení. Vytvořte také skupinu prostředků pro svůj virtuální počítač nebo použijte existující.

Pod Autentizace typ, vyberte Heslo a zadejte své uživatelské jméno a silné heslo.

Po vyplnění všech polí na této stránce by vaše údaje měly být podobné následujícím.

Krok 3: Přidání skriptu cloud-init

Dále klikněte na Pokročilý přidejte skript cloud-init. Zkopírujte a vložte skript cloud-init z prvního kroku do pole vlastních dat.

Nakonec klikněte na Zkontrolovat + vytvořit knoflík. Pokud je vše v pořádku, test projde. V opačném případě vás tvůrce virtuálních počítačů Azure provede opravami, které je třeba provést.

Krok 4: Přihlášení do vašeho virtuálního počítače

Pomocí informací o přehledu virtuálního počítače získejte veřejnou IP adresu svého virtuálního počítače a přihlaste se přes SSH. Pokud jste použili správný klíč SSH, systém vás nevyzve k zadání uživatelského hesla.

Po přihlášení můžete zkontrolovat, zda tam jsou soubory, které jste chtěli vytvořit pomocí skriptu. Taky, vyhledejte nainstalované balíčky pomocí APT a zkontrolujte, zda byl firewall správně nakonfigurován pomocí stav sudo ufw příkaz.

cloud-init také zaznamenává důležité informace do /var/log/cloud-init.log soubor. Obsahuje podrobné zprávy o všech událostech, které se staly během inicializace cloud-init. Tento soubor můžete zkontrolovat pomocí příkazu cat takto:

cat /var/log/cloud-init.log

Automatizujte vytváření virtuálních strojů pomocí cloud-init

cloud-init je výkonný nástroj, který vám pomůže automatizovat instalaci a nastavení Linuxu. Můžete jej používat v cloudu i na on-prem serverech. Ať už chcete pouze automatizovat nasazení virtuálního počítače nebo potřebujete nasadit servery Linux ve velkém měřítku, cloud-init je skvělá volba.

V souvislosti s tím vždy zabezpečte svá přihlášení SSH pro své cloudové virtuální počítače, abyste se vyhnuli narušení zabezpečení.