Amazon Elastic Compute Cloud
Benutzerhandbuch für Linux-Instances

Amazon Linux 2 als lokale virtuelle Maschine ausführen

Verwenden Sie die Abbilder der virtuellen Maschine (VM) von Amazon Linux 2 für die lokale Entwicklung und das Testen. Diese Abbilder stehen nur für die folgenden Virtualisierungsplattformen zur Verfügung:

  • VMWare

  • KVM

  • VirtualBox (Oracle VM)

  • Microsoft Hyper-V

So verwenden Sie die Abbilder der virtuellen Maschine von Amazon Linux 2 mit einer der unterstützten Virtualisierungsplattformen:

Schritt 1: Vorbereiten des seed.iso-Startabbilds

Das seed.iso-Startabbild enthält die Erstkonfigurationsinformationen, die zum Starten Ihrer neuen VM benötigt werden, wie Netzwerkkonfiguration, Hostname und Benutzerdaten.

Anmerkung

Das seed.iso-Startabbild enthält nur die Konfigurationsinformationen, die zum Starten der VM benötigt werden. Es enthält keine Amazon Linux 2-Betriebssystemdateien.

Zum Erstellen des seed.iso-Startabbilds benötigen Sie zwei Konfigurationsdateien:

  • meta-data: Diese Datei enthält den Hostnamen und statische Netzwerkeinstellungen für die VM.

  • user-data: Diese Datei konfiguriert Benutzerkonten und gibt deren Passwörter, Schlüsselpaare und Zugriffsmechanismen an. Das Amazon Linux 2-VM-Abbild erstellt standardmäßig ein ec2-user-Benutzerkonto. Sie verwenden die user-data-Konfigurationsdatei zum Festlegen des Passworts für das Standard-Benutzerkonto.

So erstellen Sie den seed.iso-Startdatenträger

  1. Erstellen Sie einen neuen Ordner namens seedconfig zum Speichern Ihrer meta-data- und user-data-Konfigurationsdateien.

  2. Erstellen Sie die meta-data-Konfigurationsdatei.

    1. Fügen Sie den Hostnamen der VM hinzu.

      local-hostname: vm_hostname
    2. Geben Sie benutzerdefinierte Netzwerkeinstellungen, wie z. B. den Netzwerkschnittstellennamen, an.

      #network-interfaces: | # iface interface_name inet static

    Der folgende Codeblock zeigt z. B. den Inhalt einer meta-data-Konfigurationsdatei, die den VM-Hostnamen (amazonlinux.onprem) angibt, die Standardnetzwerkschnittstelle (eth0) konfiguriert and statische IP-Adressen für die erforderlichen Netzwerkgeräte festlegt.

    local-hostname: amazonlinux.onprem # eth0 is the default network interface enabled in the image. You can configure static network settings with an entry like the following. network-interfaces: | auto eth0 iface eth0 inet static address 192.168.1.10 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.254
  3. Erstellen Sie die user-data-Konfigurationsdatei.

    1. Geben Sie für das Standard-ec2-user-Benutzerkonto ein benutzerdefiniertes Passwort als reine Textdatei ein:

      #cloud-config #vim:syntax=yaml users: # A user by the name `ec2-user` is created in the image by default. - default chpasswd: list: | ec2-user:plain_text_password # In the above line, do not add any spaces after 'ec2-user:'.

      Anmerkung

      Stellen Sie sicher, den Platzhalter plain_text_password durch ein Klartextpasswort Ihrer Wahl zu ersetzen.

    2. (Optional) Erstellen Sie zusätzliche Benutzerkonten und geben Sie deren Zugriffsmechanismen, Passwörter und Schlüsselpaare an. Weitere Informationen zu den unterstützten Richtlinien finden Sie unter Module.

    3. (Optional) Standardmäßig wendet cloud-init bei jedem VM-Start Netzwerkeinstellungen an. Fügen Sie den folgenden Code zur user-data-Konfigurationsdatei hinzu, um zu verhindern, dass cloud-init bei jedem Start Netzwerkeinstellungen anwendet, und um die beim ersten Start angewandten Netzwerkeinstellungen beizubehalten.

      # NOTE: Cloud-init applies network settings on every boot by default. To retain network settings from first boot, add following ‘write_files’ section: write_files: - path: /etc/cloud/cloud.cfg.d/80_disable_network_after_firstboot.cfg content: | # Disable network configuration after first boot network: config: disabled

    Der folgende Codeblock zeigt z. B. den Inhalt einer user-data-Konfigurationsdatei, die drei weitere Benutzer erstellt, ein benutzerdefiniertes Passwort für das Standard-ec2-user-Benutzerkonto angibt und cloud-init daran hindert, bei jedem Start Netzwerkeinstellungen anzuwenden.

    #cloud-config # vim:syntax=yaml users: # A user by the name ec2-user is created in the image by default. - default # The following entry creates user1 and assigns a plain text password. # Please note that the use of a plain text password is not recommended from security best practices standpoint. - name: user1 groups: sudo sudo: ['ALL=(ALL) NOPASSWD:ALL'] plain_text_passwd: myp@ssw0rd lock_passwd: false # The following entry creates user2 and attaches a hashed password to the user. # Hashed passwords can be generated with the following command on Amazon Linux 2: # python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass()))' - name: user2 passwd: hashed-password lock_passwd: false # The following entry creates user3, disables password-based login and enables an SSH public key. - name: user3 ssh-authorized-keys: - ssh-public-key-information lock_passwd: true chpasswd: list: | ec2-user:myp@ssw0rd # In the above line, do not add any spaces after 'ec2-user:'. # NOTE: Cloud-init applies network settings on every boot by default. To retain network settings from first boot, uncomment the following ‘write_files’ section: #write_files: - path: /etc/cloud/cloud.cfg.d/80_disable_network_after_firstboot.cfg content: | # Disable network configuration after first boot network: config: disabled
  4. Platzieren Sie Ihre meta-data- und user-data-Konfigurationsdateien im Ordner seedconfig, der in Schritt 1 erstellt wurde.

  5. Erstellen Sie das Startabbild seed.iso mithilfe der meta-data- und user-data-Konfigurationsdateien.

    Verwenden Sie für Linux ein Tool wie genisoimage. Wechseln Sie in den Ordner seedconfig und führen Sie den folgenden Befehl aus:

    $ genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data

    Verwenden Sie für macOS ein Tool wie hdiutil. Wechseln Sie aus dem Ordner seedconfig zur nächsthöheren Ebene und führen Sie den folgenden Befehl aus:

    $ hdiutil makehybrid -o seed.iso -hfs -joliet -iso -default-volume-name cidata seedconfig/

Schritt 2: Herunterladen des Amazon Linux 2-VM-Abbilds

Für jede der unterstützten Virtualisierungsplattformen bieten wird ein anderes Amazon Linux 2-VM-Abbild an. Laden Sie das korrekte VM-Abbild für die von Ihnen gewählte Plattform herunter:

Schritt 3: Starten und Verbinden mit der neuen Instance

Zum Starten und Verbinden mit Ihrer neuen VM benötigen Sie das seed.iso-Startabbild (in Schritt 1 erstellt) und ein Amazon Linux 2-VM-Abbild (in Schritt 2 heruntergeladen).

Anmerkung

Sie müssen das seed.iso-Startabbild beim ersten Start mit der VM verbinden.

Nachdem die VM gestartet wurde, melden Sie sich mit einem der in der user-data-Konfigurationsdatei definierten Benutzerkonten an. Sie können das Startabbild von der VM trennen, nachdem Sie sich erstmals angemeldet haben.