Det er kedeligt at lave en virtuel maskine. At skabe hundreder er tidskrævende. cloud-init lader dig automatisere oprettelse af virtuelle maskiner i Microsoft Azure.

Hvis du nogensinde har konfigureret en virtuel maskine, ved du, hvordan den fungerer. Du klikker her og der, klikker dig lidt mere, og til sidst har du sat et system op. Men så skal du stadig installere software og konfigurere VM'en efter dine præferencer.

Forestil dig nu, at du vil konfigurere hundredvis af VM'er. At klikke dig igennem installationen er ikke så effektivt. I stedet skal du automatisere processen så meget som muligt, og det er her, cloud-init kommer ind.

Lad os tage et kig på, hvordan du kan automatisere OS-installation og konfiguration af virtuel maskine ved hjælp af cloud-init i Microsoft Azure.

Hvorfor bruge cloud-init til at automatisere VM-oprettelse?

cloud-init er et kraftfuldt implementeringsautomatiseringsværktøj, som Canonical, virksomheden bag Ubuntu, udvikler.

Med cloud-init kan du installere og implementere Linux-operativsystemer og konfigurere andre aspekter af en VM. For eksempel kan du bruge cloud-init til at oprette brugerkonti, installere og konfigurere software, tilføje SSH-nøgler, you name it.

instagram viewer

På nuværende tidspunkt understøtter størstedelen af ​​cloud-tjenesteudbydere såsom Azure, Linode og Amazon Web Services (AWS) cloud-init.

Selvom cloud-init startede på Ubuntu, understøtter det nu alle de store Linux-distros, såsom openSUSE, Debian, Red Hat Enterprise Linux (RHEL) osv.

Udover at installere software i skyen, kan du også bruge cloud-init til at konfigurere og installere software på lokale servere eller virtuelle miljøer såsom VirtualBox, KVM og VMware.

Vi bruger Microsoft Azure cloud-platformen til at automatisere implementeringen af ​​en Ubuntu-server ved hjælp af cloud-init.

Trin 1: Oprettelse af et cloud-init-script

cloud-init scripts bruger moduler til at konfigurere forskellige aspekter af dit system. For eksempel vil du bruge brugere modul til at konfigurere brugeroplysninger og konti, og wireguard modul til konfiguration af WireGuard mv. Der er tonsvis af andre moduler, som du kan bruge ud af kassen.

Lad os oprette et cloud-init-script for at automatisere de fleste af de ting, du konfigurerer, når du opsætter en ny virtuel maskine.

Vi opretter en bruger ved navn "mwiza" og tildeler den en adgangskode. For nemheds skyld, lad os bruge en almindelig tekstadgangskode, men du kan kryptere den, hvis du ønsker det. Føj desuden brugerens SSH-nøgle til autoriserede nøgler. Dette giver dig mulighed for at deaktivere SSH-adgangskodelogins senere for bedre sikkerhed.

Udover at oprette en ny bruger, skal scriptet gøre følgende:

  • At skrive en fil: Opret en simpel fil og skriv indhold til den ved hjælp af skrive_filer modul. Filen vil blive placeret i hjemmemappen. Du kan bruge de samme koncepter til at oprette mere komplekse filer i fremtiden.
  • Kørende kommandoer: Vi kører enkle kommandoer til at konfigurere UFW-firewallen, men det kan være en hvilken som helst anden Linux-kommando. Brug den runcmd modul til at køre enhver kommando efter eget valg; det ligner at køre Linux-kommandoer af udfører Bash-scripts.
  • Konfiguration af lokaliteter: Dette indstiller dine foretrukne lokaliteter såsom tastaturlayout, foretrukne sprog, tidszone osv.
  • Installer pakker: Brug din foretrukne pakkehåndtering til at installere pakker på dit system. For eksempel, på Debian-baserede systemer, kan du bruge APT.

Dette er blot nogle af de moduler, du kan bruge fra cloud-init; der er flere andre moduler derude til at automatisere alle mulige ting.

Her er det fulde cloud-init-script til at konfigurere den nye brugerkonto. Husk at udskifte SSH-nøglen med den rigtige. Du er også velkommen til at ændre brugernavnet og andre detaljer.

vim: syntaks=yaml

# Tilføj systembrugere her
brugere:
- navn: mwiza
grupper: brugere, sudo
skal: /bin/bash
gecos: mwiza
plain_text_passwd: Live-grin-love12345G123
lock_passwd: falsk
ssh_authorized_keys:
- ssh-ed25519 BSHSDSDS3NzaC1sdfSDGSDSDJ1KSDB: PWELJWEEWeKBrkXWbLJBs; ldfkagfafkC6li71Ra6i+NKkajdfi [email protected]

# Installer, opdater og opgrader pakker
package_upgrade: sand
package_update: sand
package_reboot_if_require: sand

pakker:
- traceroute
- net-værktøjer
- fail2ban

# Indstil lokaliteter
landestandard: en_UK
tidszone: Etc/UTC
tastatur:
layout: NB

skrive_filer:
- sti: /etc/salt/minion.d/master_ip_port.conf
indhold: |
mester: salt
master_port: 4506
public_port: 4505
- sti: /home/mwiza/cloud-init.txt
indhold: |
oprettet af cloud-init i azurblå

# Kører Bash-kommandoer for at konfigurere software og tjenester
runcmd:
- ufw aktivere
- ufw tillade ssh
- ufw tillade 80
- systemctl aktiver ufw

# Sluk for VM'en efter initialisering er afsluttet
shutdown: poweroff

Cloud-init scriptet bruger YAML, så sørg for at indrykket er korrekt ellers vil det ikke fungere som forventet.

Trin 2: Oprettelse af den virtuelle maskine-ressource

Det næste trin er at oprette den nødvendige ressource i Azure til den virtuelle maskine. Log ind på Azure, hvis du allerede har en konto, eller opret en gratis prøvekonto ved at gå over til azure.microsoft.com.

På Azure Portal-hjemmesiden skal du klikke på Opret en ressource knap. Vælg fra listen over de mest populære Azure-tjenester Virtuel maskine.

Den næste side giver dig information om oprettelse af VM-ressourcer såsom harddisk, netværk osv.

Giv din VM et meningsfuldt navn, og vælg implementeringsregionen. Opret også en ressourcegruppe til din VM eller brug en eksisterende.

Under Godkendelse type, skal du vælge Adgangskode mulighed og angiv dit brugernavn og stærke adgangskode.

Når du har udfyldt alle felterne på denne side, bør dine oplysninger ligne følgende.

Trin 3: Tilføjelse af dit cloud-init-script

Klik derefter på Fremskreden fanen for at tilføje cloud-init-scriptet. Kopiér og indsæt cloud-init-scriptet fra det første trin i det tilpassede datafelt.

Klik til sidst på Gennemgå + opret knap. Hvis alt er i orden, vil testen bestå. Ellers vil Azure VM-skaberen vejlede dig om de rettelser, du skal foretage.

Trin 4: Log ind på din virtuelle maskine

Brug VM-oversigtsoplysningerne til at få den offentlige IP-adresse på din virtuelle maskine og login via SSH. Hvis du brugte den korrekte SSH-nøgle, vil systemet ikke bede dig om at indtaste brugeradgangskoden.

Når du er logget ind, kan du kontrollere, at de filer, du ønskede at oprette via scriptet, er der. Også, se efter installerede pakker med APT og kontroller, at firewallen er konfigureret korrekt ved hjælp af sudo ufw status kommando.

cloud-init logger også vigtig information i /var/log/cloud-init.log fil. Den indeholder detaljerede meddelelser om alle hændelser, der skete under cloud-initieringen. Du kan tjekke denne fil ved at bruge kat-kommandoen som følger:

kat /var/log/cloud-init.log

Automatiser skabelse af virtuelle maskiner med cloud-init

cloud-init er et kraftfuldt værktøj, der hjælper dig med at automatisere Linux installation og opsætning. Du kan bruge det i skyen og på lokale servere. Uanset om du bare ønsker at automatisere din virtuelle maskine-implementering eller har brug for at implementere Linux-servere i stor skala, er cloud-init et godt valg.

På en relateret note skal du altid sikre dine SSH-login til dine skybaserede virtuelle maskiner for at undgå sikkerhedsbrud.