Das Erstellen einer virtuellen Maschine ist langweilig. Hunderte zu erstellen ist zeitaufwändig. Mit cloud-init können Sie die Erstellung virtueller Maschinen in Microsoft Azure automatisieren.

Wenn Sie schon einmal eine virtuelle Maschine eingerichtet haben, wissen Sie, wie sie funktioniert. Man klickt hier und da, klickt sich noch weiter, und am Ende hat man ein System eingerichtet. Dann müssen Sie aber noch Software installieren und die VM nach Ihren Wünschen konfigurieren.

Stellen Sie sich nun vor, Sie möchten Hunderte von VMs einrichten. Sich durch die Installation zu klicken ist nicht so effektiv. Stattdessen müssen Sie den Prozess so weit wie möglich automatisieren, und hier kommt cloud-init ins Spiel.

Sehen wir uns an, wie Sie die Betriebssysteminstallation und die Konfiguration virtueller Maschinen mithilfe von cloud-init in Microsoft Azure automatisieren können.

Warum cloud-init zur Automatisierung der VM-Erstellung verwenden?

cloud-init ist ein leistungsstarkes Tool zur Bereitstellungsautomatisierung, das Canonical, das Unternehmen hinter Ubuntu, entwickelt.

instagram viewer

Mit cloud-init können Sie Linux-Betriebssysteme installieren und bereitstellen sowie andere Aspekte einer VM konfigurieren. Mit cloud-init können Sie beispielsweise Benutzerkonten einrichten, Software installieren und konfigurieren, SSH-Schlüssel hinzufügen und vieles mehr.

Derzeit unterstützen die meisten Cloud-Dienstanbieter wie Azure, Linode und Amazon Web Services (AWS) cloud-init.

Obwohl cloud-init auf Ubuntu startete, unterstützt es jetzt alle wichtigen Linux-Distributionen wie openSUSE, Debian, Red Hat Enterprise Linux (RHEL) usw.

Neben der Bereitstellung von Software in der Cloud können Sie mit cloud-init auch Software auf lokalen Servern oder virtuellen Umgebungen wie VirtualBox, KVM und VMware konfigurieren und installieren.

Wir verwenden die Cloud-Plattform Microsoft Azure, um die Bereitstellung eines Ubuntu-Servers mithilfe von cloud-init zu automatisieren.

Schritt 1: Erstellen eines Cloud-Init-Skripts

Cloud-Init-Skripte verwenden Module zum Konfigurieren verschiedener Aspekte Ihres Systems. Sie verwenden beispielsweise die Benutzer Modul zum Konfigurieren von Benutzerinformationen und Konten, und das Drahtschutz Modul zur Konfiguration von WireGuard usw. Es gibt unzählige andere Module, die Sie sofort verwenden können.

Lassen Sie uns ein Cloud-Init-Skript erstellen, um die meisten Dinge zu automatisieren, die Sie beim Einrichten einer neuen virtuellen Maschine konfigurieren.

Wir erstellen einen Benutzer namens „mwiza“ und weisen ihm ein Passwort zu. Der Einfachheit halber verwenden wir ein Klartext-Passwort, Sie können es jedoch verschlüsseln, wenn Sie möchten. Fügen Sie außerdem den SSH-Schlüssel des Benutzers zu den autorisierten Schlüsseln hinzu. Auf diese Weise können Sie SSH-Passwortanmeldungen später aus Gründen der Sicherheit deaktivieren.

Abgesehen von der Erstellung eines neuen Benutzers sollte das Skript Folgendes tun:

  • Eine Datei schreiben: Erstellen Sie eine einfache Datei und schreiben Sie Inhalte darin mit write_files Modul. Die Datei wird im Home-Verzeichnis abgelegt. Sie können dieselben Konzepte auch für die zukünftige Erstellung komplexerer Dateien verwenden.
  • Befehle ausführen: Wir führen einfache Befehle zum Konfigurieren der UFW-Firewall aus, es könnte sich aber auch um jeden anderen Linux-Befehl handeln. Nutzen Sie die runcmd Modul zum Ausführen eines beliebigen Befehls Ihrer Wahl; Es ähnelt dem Ausführen von Linux-Befehlen von Ausführen von Bash-Skripten.
  • Gebietsschemas konfigurieren: Dadurch werden Ihre bevorzugten Gebietsschemata wie Tastaturlayout, bevorzugte Sprache, Zeitzone usw. festgelegt.
  • Pakete installieren: Verwenden Sie Ihren bevorzugten Paketmanager, um Pakete auf Ihrem System zu installieren. Auf Debian-basierten Systemen können Sie beispielsweise APT verwenden.

Dies sind nur einige der Module, die Sie von cloud-init verwenden können. Es gibt mehrere andere Module, mit denen Sie alle möglichen Dinge automatisieren können.

Hier ist das vollständige Cloud-Init-Skript zum Konfigurieren des neuen Benutzerkontos. Denken Sie daran, den SSH-Schlüssel durch den richtigen zu ersetzen. Sie können auch gerne den Benutzernamen und alle anderen Details ändern.

vim: syntax=yaml

# Fügen Sie hier Systembenutzer hinzu
Benutzer:
- Name: mwiza
Gruppen: Benutzer, Sudo
Shell: /bin/bash
gecos: mwiza
plain_text_passwd: Live-laugh-love12345G123
lock_passwd: false
ssh_authorized_keys:
- ssh-ed25519 BSHSDSDS3NzaC1sdfSDGSDSDJ1KSDB: PWELJWEEWeKBrkXWbLJBs; ldfkagfafkC6li71Ra6i+NKkajdfi [email protected]

# Installieren, aktualisieren und aktualisieren Sie Pakete
package_upgrade: true
package_update: wahr
package_reboot_if_require: true

Pakete:
- Traceroute
- Netzwerkzeuge
- fail2ban

# Legen Sie Gebietsschemas fest
Gebietsschema: en_UK
Zeitzone: Etc/UTC
Klaviatur:
Layout: nb

write_files:
- Pfad: /etc/salt/minion.d/master_ip_port.conf
Inhalt: |
Meister: Salz
Master-Port: 4506
Veröffentlichungsport: 4505
- Pfad: /home/mwiza/cloud-init.txt
Inhalt: |
erstellt von cloud-init in Azure

# Ausführen von Bash-Befehlen zum Konfigurieren von Software und Diensten
runcmd:
- ufw aktivieren
- ufw erlaubt SSH
- ufw erlauben 80
- systemctl ufw aktivieren

# Schalten Sie die VM aus, nachdem die Initialisierung abgeschlossen ist
Herunterfahren: Ausschalten

Das Cloud-Init-Skript verwendet YAML. Stellen Sie daher sicher, dass die Einrückung korrekt ist. Andernfalls funktioniert es nicht wie erwartet.

Schritt 2: Erstellen der Ressource der virtuellen Maschine

Der nächste Schritt besteht darin, in Azure die erforderliche Ressource für die virtuelle Maschine zu erstellen. Melden Sie sich bei Azure an, wenn Sie bereits ein Konto haben, oder erstellen Sie ein kostenloses Testkonto, indem Sie zu gehen azure.microsoft.com.

Klicken Sie auf der Startseite des Azure-Portals auf Erstellen Sie eine Ressource Taste. Wählen Sie aus der Liste der beliebtesten Azure-Dienste aus Virtuelle Maschine.

Auf der nächsten Seite finden Sie Informationen zum Erstellen von VM-Ressourcen wie Festplatte, Netzwerk usw.

Geben Sie Ihrer VM einen aussagekräftigen Namen und wählen Sie die Bereitstellungsregion aus. Erstellen Sie außerdem eine Ressourcengruppe für Ihre VM oder verwenden Sie eine vorhandene.

Unter dem Authentifizierung Typ, wählen Sie die aus Passwort Option und geben Sie Ihren Benutzernamen und Ihr sicheres Passwort ein.

Nachdem Sie alle Felder auf dieser Seite ausgefüllt haben, sollten Ihre Angaben etwa wie folgt aussehen.

Schritt 3: Hinzufügen Ihres Cloud-Init-Skripts

Klicken Sie anschließend auf Fortschrittlich Klicken Sie auf die Registerkarte, um das Cloud-Init-Skript hinzuzufügen. Kopieren Sie das Cloud-Init-Skript aus dem ersten Schritt und fügen Sie es in das benutzerdefinierte Datenfeld ein.

Klicken Sie abschließend auf Überprüfen + erstellen Taste. Wenn alles in Ordnung ist, wird der Test bestanden. Andernfalls wird Sie der Azure-VM-Ersteller bei den vorzunehmenden Korrekturen unterstützen.

Schritt 4: Anmelden bei Ihrer virtuellen Maschine

Nutzen Sie die VM-Übersichtsinformationen, um die öffentliche IP-Adresse Ihrer virtuellen Maschine zu erhalten und sich über SSH anzumelden. Wenn Sie den richtigen SSH-Schlüssel verwendet haben, werden Sie vom System nicht zur Eingabe des Benutzerkennworts aufgefordert.

Sobald Sie angemeldet sind, können Sie überprüfen, ob die Dateien vorhanden sind, die Sie über das Skript erstellen wollten. Auch, Suchen Sie mit APT nach installierten Paketen und überprüfen Sie, ob die Firewall ordnungsgemäß konfiguriert wurde Sudo UFW-Status Befehl.

cloud-init protokolliert auch wichtige Informationen im /var/log/cloud-init.log Datei. Es enthält ausführliche Meldungen aller Ereignisse, die während der Cloud-Init-Initialisierung aufgetreten sind. Sie können diese Datei mit dem Befehl cat wie folgt auschecken:

cat /var/log/cloud-init.log

Automatisieren Sie die Erstellung virtueller Maschinen mit cloud-init

cloud-init ist ein leistungsstarkes Tool, das Ihnen hilft, die Installation und Einrichtung von Linux zu automatisieren. Sie können es in der Cloud und auf lokalen Servern verwenden. Ganz gleich, ob Sie lediglich die Bereitstellung Ihrer virtuellen Maschinen automatisieren möchten oder Linux-Server in großem Umfang bereitstellen müssen, cloud-init ist eine gute Wahl.

Sichern Sie außerdem immer Ihre SSH-Anmeldungen für Ihre cloudbasierten virtuellen Maschinen, um Sicherheitsverletzungen zu vermeiden.