Att skapa en virtuell maskin är tråkigt. Att skapa hundratals är tidskrävande. cloud-init låter dig automatisera skapande av virtuella maskiner i Microsoft Azure.

Om du någonsin har ställt in en virtuell maskin vet du hur den fungerar. Du klickar här och där, klickar dig lite mer och till slut har du ett system inrättat. Men då måste du fortfarande installera programvara och konfigurera den virtuella datorn efter dina önskemål.

Föreställ dig nu att du vill ställa in hundratals virtuella datorer. Att klicka dig igenom installationen är inte så effektivt. Istället måste du automatisera processen så mycket som möjligt, och det är där cloud-init kommer in.

Låt oss ta en titt på hur du kan automatisera OS-installation och virtuell maskinkonfiguration med cloud-init i Microsoft Azure.

Varför använda cloud-init för att automatisera VM-skapandet?

cloud-init är ett kraftfullt verktyg för distributionsautomatisering som Canonical, företaget bakom Ubuntu, utvecklar.

Med cloud-init kan du installera och distribuera Linux-operativsystem och konfigurera andra aspekter av en virtuell dator. Du kan till exempel använda cloud-init för att ställa in användarkonton, installera och konfigurera programvara, lägga till SSH-nycklar, you name it.

instagram viewer

För närvarande stöder majoriteten av molntjänsteleverantörer som Azure, Linode och Amazon Web Services (AWS) cloud-init.

Även om cloud-init startade på Ubuntu, stöder det nu alla större Linux-distros, såsom openSUSE, Debian, Red Hat Enterprise Linux (RHEL), etc.

Förutom att distribuera programvara i molnet kan du också använda cloud-init för att konfigurera och installera programvara på lokala servrar eller virtuella miljöer som VirtualBox, KVM och VMware.

Vi kommer att använda Microsoft Azure molnplattform för att automatisera distributionen av en Ubuntu-server med cloud-init.

Steg 1: Skapa ett cloud-init-skript

cloud-init-skript använder moduler för att konfigurera olika aspekter av ditt system. Till exempel kommer du att använda användare modul för att konfigurera användarinformation och konton, och trådskydd modul för att konfigurera WireGuard, etc. Det finns massor av andra moduler som du kan använda ur lådan.

Låt oss skapa ett cloud-init-skript för att automatisera de flesta saker som du konfigurerar när du ställer in en ny virtuell maskin.

Vi skapar en användare som heter "mwiza" och tilldelar den ett lösenord. För enkelhetens skull, låt oss använda ett lösenord med vanlig text, men du kan kryptera det om du vill. Lägg dessutom till användarens SSH-nyckel till auktoriserade nycklar. Detta gör att du kan inaktivera SSH-lösenordsinloggningar senare för bättre säkerhet.

Förutom att skapa en ny användare bör skriptet göra följande:

  • Att skriva en fil: Skapa en enkel fil och skriv innehåll till den med hjälp av skriv_filer modul. Filen kommer att placeras i hemkatalogen. Du kan använda samma koncept för att skapa mer komplexa filer i framtiden.
  • Körande kommandon: Vi kör enkla kommandon för att konfigurera UFW-brandväggen, men det kan vara vilket annat Linux-kommando som helst. Använd runcmd modul för att köra valfritt kommando; det liknar att köra Linux-kommandon av köra Bash-skript.
  • Konfigurera språk: Detta ställer in dina föredragna språk, såsom tangentbordslayout, föredraget språk, tidszon, etc.
  • Installera paket: Använd din favoritpakethanterare för att installera paket på ditt system. Till exempel, på Debian-baserade system kan du använda APT.

Det här är bara några av modulerna du kan använda från cloud-init; det finns flera andra moduler där ute för att automatisera alla möjliga saker.

Här är det fullständiga cloud-init-skriptet för att konfigurera det nya användarkontot. Kom ihåg att byta ut SSH-nyckeln mot den korrekta. Ändra även användarnamnet och andra detaljer.

vim: syntax=yaml

# Lägg till systemanvändare här
användare:
- namn: mwiza
grupper: användare, sudo
skal: /bin/bash
gecos: mwiza
plain_text_passwd: Live-skratta-love12345G123
lock_passwd: falskt
ssh_authorized_keys:
- ssh-ed25519 BSHSDSDS3NzaC1sdfSDGSDSDJ1KSDB: PWELJWEEWeKBrkXWbLJBs; ldfkagfafkC6li71Ra6i+NKkajdfi [email protected]

# Installera, uppdatera och uppgradera paket
package_upgrade: sant
package_update: sant
package_reboot_if_require: sant

paket:
- spårväg
- nät-verktyg
- fail2ban

# Ställ in språk
språk: sv_UK
tidszon: Etc/UTC
tangentbord:
layout: OBS

skriv_filer:
- sökväg: /etc/salt/minion.d/master_ip_port.conf
innehåll: |
mästare: salt
master_port: 4506
publiceringsport: 4505
- sökväg: /home/mwiza/cloud-init.txt
innehåll: |
skapad av cloud-init i azurblått

# Kör Bash-kommandon för att konfigurera programvara och tjänster
runcmd:
- ufw aktivera
- ufw tillåt ssh
- ufw tillåt 80
- systemctl aktivera ufw

# Stäng av den virtuella datorn efter att initieringen har slutförts
avstängning: avstängning

Cloud-init-skriptet använder YAML, så se till att indraget är korrekt annars fungerar det inte som förväntat.

Steg 2: Skapa den virtuella maskinresursen

Nästa steg är att skapa den nödvändiga resursen i Azure för den virtuella maskinen. Logga in på Azure om du redan har ett konto eller skapa ett kostnadsfritt testkonto genom att gå över till azure.microsoft.com.

På Azure Portal-hemsidan klickar du på Skapa en resurs knapp. Välj från listan över de mest populära Azure-tjänsterna Virtuell maskin.

Nästa sida ger dig information för att skapa VM-resurser som hårddisk, nätverk, etc.

Ge din virtuella dator ett meningsfullt namn och välj distributionsregion. Skapa också en resursgrupp för din virtuella dator eller använd en befintlig.

Under Autentisering typ, välj Lösenord alternativet och ange ditt användarnamn och starka lösenord.

När du har fyllt i alla fält på den här sidan bör dina uppgifter likna följande.

Steg 3: Lägga till ditt cloud-init-skript

Klicka sedan på Avancerad fliken för att lägga till cloud-init-skriptet. Kopiera och klistra in cloud-init-skriptet från det första steget i det anpassade datafältet.

Slutligen klickar du på Granska + skapa knapp. Om allt är okej kommer testet att klara sig. Annars kommer Azure VM-skaparen att vägleda dig om de korrigeringar som ska göras.

Steg 4: Logga in på din virtuella maskin

Använd VM-översiktsinformationen för att få den offentliga IP-adressen för din virtuella maskin och logga in via SSH. Om du använde rätt SSH-nyckel kommer systemet inte att uppmana dig att ange användarlösenordet.

När du väl är inloggad kan du kontrollera att filerna du ville skapa via skriptet finns där. Också, leta efter installerade paket med APT och kontrollera att brandväggen har konfigurerats korrekt med hjälp av sudo ufw status kommando.

cloud-init loggar också viktig information i /var/log/cloud-init.log fil. Den innehåller utförliga meddelanden om alla händelser som hände under molninitieringen. Du kan kolla in den här filen med kommandot cat enligt följande:

cat /var/log/cloud-init.log

Automatisera skapande av virtuella maskiner med cloud-init

cloud-init är ett kraftfullt verktyg som hjälper dig att automatisera Linux-installation och installation. Du kan använda den i molnet och på lokala servrar. Oavsett om du bara vill automatisera din virtuella maskininstallation eller behöver distribuera Linux-servrar i stor skala, är cloud-init ett utmärkt val.

På en relaterad anteckning, säkra alltid dina SSH-inloggningar för dina molnbaserade virtuella maskiner för att undvika säkerhetsintrång.