Å lage en virtuell maskin er kjedelig. Å lage hundrevis er tidkrevende. cloud-init lar deg automatisere oppretting av virtuell maskin i Microsoft Azure.
Hvis du noen gang har satt opp en virtuell maskin, vet du hvordan den fungerer. Du klikker her og der, klikker deg litt til, og til slutt har du et system satt opp. Men da må du fortsatt installere programvare og konfigurere VM-en etter dine preferanser.
Tenk deg nå at du vil sette opp hundrevis av VM-er. Å klikke deg gjennom installasjonen er ikke så effektivt. I stedet må du automatisere prosessen så mye som mulig, og det er her cloud-init kommer inn.
La oss ta en titt på hvordan du kan automatisere OS-installasjon og virtuell maskinkonfigurasjon ved å bruke cloud-init i Microsoft Azure.
Hvorfor bruke cloud-init for å automatisere VM-oppretting?
cloud-init er et kraftig distribusjonsautomatiseringsverktøy som Canonical, selskapet bak Ubuntu, utvikler.
Med cloud-init kan du installere og distribuere Linux-operativsystemer og konfigurere andre aspekter av en VM. Du kan for eksempel bruke cloud-init til å sette opp brukerkontoer, installere og konfigurere programvare, legge til SSH-nøkler, you name it.
For tiden støtter flertallet av skytjenesteleverandører som Azure, Linode og Amazon Web Services (AWS) cloud-init.
Selv om cloud-init startet på Ubuntu, støtter den nå alle de store Linux-distroene, som openSUSE, Debian, Red Hat Enterprise Linux (RHEL), etc.
Bortsett fra å distribuere programvare i skyen, kan du også bruke cloud-init til å konfigurere og installere programvare på lokale servere eller virtuelle miljøer som VirtualBox, KVM og VMware.
Vi bruker Microsoft Azure-skyplattformen til å automatisere distribusjonen av en Ubuntu-server ved å bruke cloud-init.
Trinn 1: Opprette et sky-init-skript
cloud-init-skript bruker moduler for å konfigurere forskjellige aspekter av systemet ditt. For eksempel vil du bruke brukere modul for å konfigurere brukerinformasjon og kontoer, og wireguard modul for konfigurering av WireGuard, etc. Det er tonnevis av andre moduler som du kan bruke ut av esken.
La oss lage et sky-init-skript for å automatisere de fleste tingene du konfigurerer når du setter opp en ny virtuell maskin.
Vi oppretter en bruker som heter "mwiza" og tildeler den et passord. For enkelhets skyld, la oss bruke et vanlig tekstpassord, men du kan kryptere det hvis du ønsker det. I tillegg legger du til brukerens SSH-nøkkel til autoriserte nøkler. Dette lar deg deaktivere SSH-passordpålogginger senere for bedre sikkerhet.
Bortsett fra å opprette en ny bruker, bør skriptet gjøre følgende:
- Skrive en fil: Lag en enkel fil og skriv innhold til den ved hjelp av skrive_filer modul. Filen vil bli plassert i hjemmekatalogen. Du kan bruke de samme konseptene for å lage mer komplekse filer i fremtiden.
- Kjører kommandoer: Vi kjører enkle kommandoer for å konfigurere UFW-brannmuren, men det kan være en hvilken som helst annen Linux-kommando. Bruk runcmd modul for å kjøre hvilken som helst kommando du ønsker; det ligner på å kjøre Linux-kommandoer av kjører Bash-skript.
- Konfigurere lokaliteter: Dette angir dine foretrukne lokaliteter som tastaturoppsett, foretrukket språk, tidssone, etc.
- Installer pakker: Bruk din favorittpakkebehandling for å installere pakker på systemet ditt. For eksempel, på Debian-baserte systemer, kan du bruke APT.
Dette er bare noen av modulene du kan bruke fra cloud-init; det er flere andre moduler der ute for å automatisere alle slags ting.
Her er hele sky-init-skriptet for å konfigurere den nye brukerkontoen. Husk å erstatte SSH-nøkkelen med den riktige. Du må også gjerne endre brukernavnet og andre detaljer.
vim: syntaks=yaml
# Legg til systembrukere her
brukere:
- navn: mwiza
grupper: brukere, sudo
skall: /bin/bash
gecos: mwiza
plain_text_passwd: Live-laugh-love12345G123
lock_passwd: usant
ssh_authorized_keys:
- ssh-ed25519 BSHSDSDS3NzaC1sdfSDGSDSDJ1KSDB: PWELJWEEWeKBrkXWbLJBs; ldfkagfafkC6li71Ra6i+NKkajdfi [email protected]# Installer, oppdater og oppgrader pakker
package_upgrade: sant
package_update: sant
package_reboot_if_require: santpakker:
- traceroute
- nett-verktøy
- fail2ban# Angi lokaliteter
lokalitet: en_UK
tidssone: Etc/UTC
tastatur:
layout: NBskrive_filer:
- bane: /etc/salt/minion.d/master_ip_port.conf
innhold: |
mester: salt
master_port: 4506
publiseringsport: 4505
- bane: /home/mwiza/cloud-init.txt
innhold: |
opprettet av cloud-init i asurblått# Kjører Bash-kommandoer for å konfigurere programvare og tjenester
runcmd:
- ufw aktiver
- ufw tillat ssh
- ufw tillat 80
- systemctl aktiver ufw
# Slå av VM etter initialisering er fullført
avstengning: strømav
Cloud-init-skriptet bruker YAML, så sørg for at innrykk er riktig ellers vil det ikke fungere som forventet.
Trinn 2: Opprette den virtuelle maskinressursen
Det neste trinnet er å opprette den nødvendige ressursen i Azure for den virtuelle maskinen. Logg på Azure hvis du allerede har en konto, eller opprett en gratis prøvekonto ved å gå over til azure.microsoft.com.
På Azure Portal-hjemmesiden klikker du på Opprett en ressurs knapp. Velg fra listen over de mest populære Azure-tjenestene Virtuell maskin.
Den neste siden gir deg informasjon for å lage VM-ressurser som harddisk, nettverk osv.
Gi VM-en et meningsfylt navn og velg distribusjonsregionen. Opprett også en ressursgruppe for VM-en din eller bruk en eksisterende.
Under Autentisering type, velg Passord alternativet og oppgi brukernavn og sterkt passord.
Etter at du har fylt ut alle feltene på denne siden, skal opplysningene dine ligne på følgende.
Trinn 3: Legge til cloud-init-skriptet ditt
Deretter klikker du på Avansert for å legge til cloud-init-skriptet. Kopier og lim inn cloud-init-skriptet fra første trinn inn i det tilpassede datafeltet.
Til slutt klikker du på Gjennomgå + opprett knapp. Hvis alt er i orden, vil testen bestå. Ellers vil Azure VM-skaperen veilede deg om rettelsene du må gjøre.
Trinn 4: Logg på den virtuelle maskinen din
Bruk VM-oversiktsinformasjonen for å få den offentlige IP-adressen til din virtuelle maskin og logg inn via SSH. Hvis du brukte riktig SSH-nøkkel, vil ikke systemet be deg om å angi brukerpassordet.
Når du er logget inn, kan du sjekke at filene du ønsket å lage via skriptet er der. Også, se etter installerte pakker med APT og kontroller at brannmuren er riktig konfigurert ved hjelp av sudo ufw status kommando.
cloud-init logger også viktig informasjon i /var/log/cloud-init.log fil. Den inneholder detaljerte meldinger om alle hendelser som skjedde under cloud-initieringen. Du kan sjekke ut denne filen ved å bruke cat-kommandoen som følger:
cat /var/log/cloud-init.log
Automatiser oppretting av virtuelle maskiner med sky-init
cloud-init er et kraftig verktøy som hjelper deg med å automatisere Linux-installasjon og -oppsett. Du kan bruke den i skyen og på lokale servere. Enten du bare vil automatisere den virtuelle maskindistribusjonen eller trenger å distribuere Linux-servere i stor skala, er cloud-init et godt valg.
På et relatert notat, sikre alltid SSH-påloggingene dine for dine skybaserte virtuelle maskiner for å unngå sikkerhetsbrudd.