Skip to content

Latest commit

 

History

History
86 lines (66 loc) · 3.94 KB

cloud-init-hands-on.md

File metadata and controls

86 lines (66 loc) · 3.94 KB

Übung 3: Cloud-init Hands-on

Cloud-init übernimmt die Initialisierung einer Cloud-Instanz. Es wird von allen grossen öffentlichen Cloud Anbietern, Bereitstellungssystemen für private Cloud Infrastrukturen und Bare Metal Installationen unterstützt.

Mit Cloud-init lassen u.a. folgende Einstellungen vornehmen:

  • Festlegen eines Standardgebietsschemas
  • Hostname einstellen
  • ssh-private Schlüssel generieren
  • ssh-Schlüssel zu den .ssh/authorized_keys des Benutzers hinzufügen, damit er sich anmelden kann

Das Verhalten von cloud-init kann über, das Feld User data (oder Custom data) konfiguriert werden. User data wird vom Benutzer zum Startzeitpunkt an cloud-init an den Cloud-Anbieter übergeben, normalerweise als Parameter in der CLI, Vorlage oder im Cloud-Portal, die zum Starten einer Instanz verwendet werden.

Beginnt das Feld User data mit #cloud-config erkennt die Cloud Umgebung, dass es sich um Cloud-init-Anweisungen handelt.

Die wichtigsten Einträge sind:

  • users: Dient zum Erstellen und konfigurieren von Usern.
  • packages: Beschreibt, in einem Array, welche Linux Packages installiert werden sollen.
  • runcmd: Beschreibt, in einem Array, welche Shell (sh) Befehle ausgeführt werden sollen.
  • write_files: dient zum Erstellen von (Konfigurations-)Dateien.

Ein einfaches Beispiel für Cloud-init ist:

#cloud-config
users:
  - name: ubuntu
    sudo: ALL=(ALL) NOPASSWD:ALL
    groups: users, admin
    home: /home/ubuntu
    shell: /bin/bash
    lock_passwd: false
    plain_text_passwd: 'password'        
# login ssh and console with password
ssh_pwauth: true
disable_root: false    
packages:
  - unzip
runcmd:
  - echo "Hello from Cloud-init"
write_files:
 - content: |
    Cloud-init write_files
   path: /etc/issue
   permissions: '0644'   

Nach der Installation der VM und durchlaufen von Cloud-init kann mittels

sudo cloud-init status

überprüft werden, ob Cloud-init ordnungsgemäss durchgelaufen ist.

Bei Fehlern (error) sind die Logdateien, zu studieren

  • /var/log/cloud-init.log – Protokolldatei der ausgeführten Ergebnisses von cloud-init
  • /var/log/cloud-init-output.log - Ausgabe von cloud-init bzw. deren Befehle

Die verwendete Konfiguration, welche aus User data erzeugt wurde, kann im Verzeichnis

  • /var/lib/cloud/instance - z.B. Datei user-data.txt oder scripts/runcmd angeschaut werden.

Links


Weitere Informationen

Linux

Software Konfiguration

Service Konfiguration