VM-Installation von openSUSE

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Mit einem Befehl lassen sich die beiden Ausgaben von openSUSE in einer VM installieren.

Anschließend an unseren ADMIN-Tipp zur Installation von VMs mit einem einzigen Befehl wollen wir die Installation einer damals übergangenen Distribution nachholen: openSUSE. Eine Zeit lang waren Suse-Distributionen vor allem in Deutschland überaus populär, aber die Wirren um der Besitzverhältnisse der Firma haben den Ruf der alteingesessenen Linux-Produkt nicht unbedingt gefördert. Zudem wurde die Entwicklung der openSUSE-Distribution mehrfach umstrukturiert, was zu noch mehr Verwirrung unter den Suse-Anhängern geführt hat. 

Derzeit gibt es die beiden openSUSE-Distributionen Tumbleweed und Leap. Zwar gibt es noch zwei klassische openSUSE-Versionen 13.1 und 13.2 , die noch bis Ende 2016 respektive Anfang 2017 Support erhalten, aber die Zukunft gehört den beiden vorher genannten Distributionen. Leap basiert auf dem Code von Suse Linux Enterprise Server 12.1 , also einer aktuellen Enterprise-Distribution, für die Suse noch bis 2024 Support leisten will. Tumbleweed ist dagegen ein sogenanntes Rolling Release, in das stets die neueste Versionen der enthaltenen Softwarepakete einfließen. Mit einem automatischen Build-Prozess werden diese Pakete regelmäßig neu übersetzt und mit einem öffentlichen Qualitätssicherungsprozess namens OpenQA getestet.

Interessant sind die openSUSE-Distributionen beispielsweise deshalb, weil sie auf Btrfs als Dateisystem für die Systempartition setzen. Dazu bietet Suse noch das Tool Snapper, das dabei hilft, die Snapshots mit Btrfs anzufertigen und zu verwalten .

Bei der automatisierten Installation hat Suse einen eigenen Mechanismus entwickelt, der auf dem Management-Tools YaST beziehungsweise dessen Nachfolger YaST2 basiert. Für die Installation mit Autoyast müssen Administratoren eine Datei in einem XML-Format schreiben, die die Systemkonfiguration enthält. Eine solche Datei lässt sich wie eine Kickstart- oder Preseed-Datei dem Libvirt-Installer übergeben.

Für Leap sieht der Aufruf wie folgt aus:

virt-install -n s2 -r 1024 --cpu=host --disk path=/var/lib/libvirt/images/s2.qcow2,format=qcow2,bus=virtio,size=10 -w network=internal,model=virtio --nographics --location=http://download.opensuse.org/distribution/leap/42.1/repo/oss -x "autoyast=file:////autoyast.xml textmode=1 console=ttyS0,115200n8" --initrd-inject=autoyast.xml

Bei der Installation von Tumbleweed ändert sich nur die URL zu den Installationsdateien:

virt-install -n s2 -r 1024 --cpu=host --disk path=/var/lib/libvirt/images/s2.qcow2,format=qcow2,bus=virtio,size=10 -w network=internal,model=virtio --nographics --location=http://download.opensuse.org/tumbleweed/repo/oss -x "autoyast=file:////autoyast.xml textmode=1 console=ttyS0,115200n8" --initrd-inject=autoyast.xml

Die folgende Autoyast-Datei lässt sich in beiden Fällen verwenden. Über die Installation hinaus installiert das File auch einen SSH Public Key im Root-Account und startet den SSH-Server:

<?xml version="1.0"?>
<!DOCTYPE profile>
<profile
  xmlns="http://www.suse.com/1.0/yast2ns"
  xmlns:config="http://www.suse.com/1.0/configns">
<general>
  <mode>
    <confirm config:type="boolean">false</confirm>
    <second_stage config:type="boolean">false</second_stage>
  </mode>
</general>
  <partitioning  config:type="list">
    <drive>
      <device>/dev/vda</device>
      <partitions config:type="list">
        <partition>
          <filesystem config:type="symbol">btrfs</filesystem>
          <size>10G</size>
          <mount>/</mount>
        </partition>
      </partitions>
    </drive>
  </partitioning>
<users config:type="list">
     <user>
       <encrypted config:type="boolean">false</encrypted>
       <uid>0</uid>
       <gid>0</gid>
       <user_password>password</user_password>
       <username>root</username>
    <forename/>
    <surname/>
     </user>
 </users>
<software>
  <packages config:type="list">
    <package>zypper</package>
  </packages>
  <do_online_update config:type="boolean">true</do_online_update>
</software>
<services-manager>
  <default_target>multi-user</default_target>
  <services>
    <enable config:type="list">
      <service>sshd</service>
    </enable>
  </services>
</services-manager>
  <scripts>
    <chroot-scripts config:type="list">
        <script>
        <chrooted config:type="boolean">true</chrooted>
        <filename>ssh.sh</filename>
        <source>
        <![CDATA[
        #!/bin/sh
        umask 077
        mkdir /root/.ssh
        echo "ssh-dss AAAAB3NzaC1kc3MAAACBAPKD0JbHFAiTgBGigIhUAampaBf6Szzqo43zxjzjCQFrbKYXLYbah7+DfpnQnNyvzkQ1KDXPKrfIHuDuHEF153xhQr62gqIoMRlbxtKbi+iQ/O7orqjrtFCEc57rGayJmWXa/qCoNy97KWlyFOSnjPNcZtsJvlZnLF3hxf+U10rvAAAAFQCoJbNCpHlvdM9nw1y+Pl3pcRaQAADFHDFDSFLFKLJLHDFFDSFLKJHDFLDSF14UdRDMvEVzhkefsUodqnEQG81cmUk3veY4Uhv3r28pgdbtrKis7p8kMZBLq4Pdd9DFRyZkcG+dff1PBgcoXi1ni0JGTR+aooyNoxmaPpKTp2vxKGRPirafQAAAIEA7bUbZzMTlol8ZoDNht2wVWk2EG/9k/L6EZyrSe39SrO5Tf7MDuqB0wLtlae2q+upWka3Ba39HsjtG7BeErJsZT9jTfRbiBKR8JAFQni5T+kVVpZl3ihEXA5kdfYp2xfvoRXSP8Uq0aDzwudwaxFgprObn8N9V7XEHHUOBR7a+Bw= of@itanet.de" >> /root/.ssh/authorized_keys
        systemctl enable sshd
exit 0
]]>
        </source>
      </script>
  </chroot-scripts>
  </scripts>
</profile>

Zum einfacheren Kopieren ist das Autoyast-File auch als Github-Gist hinterlegt.

04.04.2016

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023