Ako automatizovať vytváranie virtuálnych počítačov v Azure pomocou cloud-init


Vytváranie virtuálneho stroja je nuda. Vytváranie stoviek je časovo náročné. cloud-init vám umožňuje automatizovať vytváranie virtuálnych počítačov v Microsoft Azure.

Ak ste niekedy nastavovali virtuálny stroj, viete, ako to funguje. Kliknete sem a tam, preklikáte sa ešte a nakoniec máte nastavený systém. Potom však stále musíte nainštalovať softvér a nakonfigurovať VM podľa svojich preferencií.

Teraz si predstavte, že chcete nastaviť stovky VM. Preklikávanie sa inštaláciou nie je také efektívne. Namiesto toho musíte proces čo najviac zautomatizovať a tu prichádza na rad cloud-init.

Poďme sa pozrieť na to, ako môžete automatizovať inštaláciu OS a konfiguráciu virtuálneho počítača pomocou cloud-init v Microsoft Azure.

Prečo používať cloud-init na automatizáciu vytvárania virtuálnych počítačov?

cloud-init je výkonný nástroj na automatizáciu nasadenia, ktorý Canonical, spoločnosť stojaca za Ubuntu, vyvíja.

Pomocou cloud-init môžete nainštalovať a nasadiť operačné systémy Linux a nakonfigurovať ďalšie aspekty virtuálneho počítača. Môžete napríklad použiť cloud-init na nastavenie používateľských účtov, inštaláciu a konfiguráciu softvéru, pridanie kľúčov SSH, čokoľvek.

V súčasnosti väčšina poskytovateľov cloudových služieb, ako sú Azure, Linode a Amazon Web Services (AWS), podporuje cloud-init.

Hoci cloud-init začal na Ubuntu, teraz podporuje všetky hlavné linuxové distribúcie, ako napríklad openSUSE, Debian, Red Hat Enterprise Linux (RHEL) atď.

Okrem nasadenia softvéru v cloude môžete cloud-init použiť aj na konfiguráciu a inštaláciu softvéru na servery alebo virtuálne prostredia, ako sú VirtualBox, KVM a VMware.

Cloudovú platformu Microsoft Azure použijeme na automatizáciu nasadenia servera Ubuntu pomocou cloud-init.

Krok 1: Vytvorenie skriptu cloud-init

cloud-init skripty používajú moduly na konfiguráciu rôznych aspektov vášho systému. Napríklad modul users použijete na konfiguráciu používateľských informácií a účtov a modul wireguard na konfiguráciu WireGuard atď. Existuje množstvo ďalších modulov, ktoré môžete použiť po vybalení z krabice.

Poďme vytvoriť cloud-init skript na automatizáciu väčšiny vecí, ktoré konfigurujete pri nastavovaní nového virtuálneho počítača.

Vytvoríme používateľa s názvom „mwiza“ a priradíme mu heslo. Pre jednoduchosť použijeme obyčajné textové heslo, ale ak chcete, môžete ho zašifrovať. Okrem toho pridajte kľúč SSH používateľa k autorizovaným kľúčom. To vám umožní neskôr zakázať prihlásenie pomocou hesla SSH pre lepšiu bezpečnosť.

Okrem vytvorenia nového používateľa by mal skript robiť nasledovné:

  • Zápis súboru: vytvorte jednoduchý súbor a zapíšte doň obsah pomocou modulu write_files. Súbor sa umiestni do domovského adresára. Rovnaké koncepty môžete použiť na vytváranie zložitejších súborov v budúcnosti.

  • Spúšťanie príkazov: Spustíme jednoduché príkazy na konfiguráciu brány firewall UFW, ale môže to byť akýkoľvek iný príkaz systému Linux. Na spustenie ľubovoľného príkazu použite modul runcmd; je to podobné ako spúšťanie príkazov Linuxu vykonávaním skriptov Bash.

  • Konfigurácia miestnych nastavení: Tu nastavíte preferované miestne nastavenia, ako je rozloženie klávesnice, preferovaný jazyk, časové pásmo atď.

  • Inštalácia balíkov: Na inštaláciu balíkov do systému použite svojho obľúbeného správcu balíkov. Napríklad na systémoch založených na Debiane môžete použiť APT.

Toto sú len niektoré z modulov, ktoré môžete použiť z cloud-init; existuje niekoľko ďalších modulov na automatizáciu najrôznejších vecí.

Tu je úplný skript cloud-init na konfiguráciu nového používateľského účtu. Nezabudnite nahradiť kľúč SSH správnym. Môžete tiež zmeniť používateľské meno a ďalšie podrobnosti.

vim: syntax=yaml
# Add system users here
users:
  - name: mwiza
  groups: users, sudo
  shell: /bin/bash
  gecos: mwiza
  plain_text_passwd: Live-laugh-love12345G123
  lock_passwd: false
  ssh_authorized_keys:
    - ssh-ed25519 BSHSDSDS3NzaC1sdfSDGSDSDJ1KSDB:PWELJWEEWeKBrkXWbLJBs;ldfkagfafk===C6li71Ra6i+NKkajdfi userkey@email.com
# Install, update, and upgrade packages
package_upgrade: true
package_update: true
package_reboot_if_require: true
packages:
  - traceroute
  - net-tools
  - fail2ban
# Set locales
locale: en_UK
timezone: Etc/UTC
keyboard:
  layout: nb
write_files:
- path: /etc/salt/minion.d/master_ip_port.conf
content: |
master: salt
master_port: 4506
publish_port: 4505
- path: /home/mwiza/cloud-init.txt
content: |
created by cloud-init in azure
# Running Bash commands to configure software and services
runcmd:
  - ufw enable
  - ufw allow ssh
  - ufw allow 80
  - systemctl enable ufw
# Power off the VM after initialization is finalized
shutdown: poweroff

Skript cloud-init používa YAML, takže sa uistite, že odsadenie je správne, inak to nebude fungovať podľa očakávania.

Krok 2: Vytvorenie prostriedku virtuálneho stroja

Ďalším krokom je vytvorenie potrebného prostriedku v Azure pre virtuálny počítač. Prihláste sa do Azure, ak už máte účet, alebo si vytvorte bezplatný skúšobný účet tak, že prejdete na azure.microsoft.com.

Na domovskej stránke portálu Azure kliknite na tlačidlo Vytvoriť zdroj. Zo zoznamu najpopulárnejších služieb Azure vyberte Virtual Machine.

Na ďalšej stránke nájdete informácie o vytváraní prostriedkov VM, ako je pevný disk, sieť atď.

Dajte svojmu virtuálnemu počítaču zmysluplný názov a vyberte oblasť nasadenia. Vytvorte tiež skupinu prostriedkov pre svoj VM alebo použite existujúcu.

V rámci typu Autentifikácia vyberte možnosť Heslo a zadajte svoje používateľské meno a silné heslo.

Po vyplnení všetkých polí na tejto stránke by vaše údaje mali byť podobné nasledujúcim.

Krok 3: Pridanie skriptu cloud-init

Potom kliknite na kartu Rozšírené a pridajte skript cloud-init. Skopírujte a prilepte skript cloud-init z prvého kroku do poľa vlastných údajov.

Nakoniec kliknite na tlačidlo Skontrolovať + vytvoriť. Ak je všetko v poriadku, test prejde. V opačnom prípade vás tvorca virtuálnych počítačov Azure prevedie opravami, ktoré je potrebné vykonať.

Krok 4: Prihláste sa do svojho virtuálneho počítača

Použite prehľad VM na získanie verejnej IP adresy vášho virtuálneho počítača a prihlásenie cez SSH. Ak ste použili správny kľúč SSH, systém vás nevyzve na zadanie hesla používateľa.

Po prihlásení môžete skontrolovať, či tam sú súbory, ktoré ste chceli vytvoriť pomocou skriptu. Tiež vyhľadajte nainštalované balíky s APT a skontrolujte, či je firewall správne nakonfigurovaný pomocou príkazu sudo ufw status.

cloud-init tiež zaznamenáva dôležité informácie do súboru /var/log/cloud-init.log. Obsahuje podrobné správy o všetkých udalostiach, ktoré sa stali počas inicializácie cloudu. Tento súbor môžete skontrolovať pomocou príkazu cat takto:

cat /var/log/cloud-init.log

Automatizujte vytváranie virtuálnych strojov pomocou cloud-init

cloud-init je výkonný nástroj, ktorý vám pomôže automatizovať inštaláciu a nastavenie systému Linux. Môžete ho použiť v cloude a na vlastných serveroch. Či už chcete len automatizovať nasadenie virtuálneho počítača alebo potrebujete nasadiť servery Linux vo veľkom rozsahu, cloud-init je skvelá voľba.

V súvislosti s tým vždy zabezpečte svoje prihlasovacie údaje SSH pre svoje virtuálne počítače v cloude, aby ste predišli narušeniu bezpečnosti.

Súvisiace články: