Skip to content
Snippets Groups Projects

Test CSB Praktikum - Ubuntu 24.04 Autoinstall.Yaml - Full

  • Clone with SSH
  • Clone with HTTPS
  • Embed
  • Share
    The snippet can be accessed without any authentication.
    Authored by baumann

    Variante 2 - Full-Installation

    • Alle Anwendungen, sowie Extensions sind vorinstalliert
    • Auch ARCitect & die VSCode Extension
    • Fehlen tut derzeit xRDP
    Edited
    autoinstall.yaml 6.83 KiB
    #cloud-config
    autoinstall:
      version: 1
      source:
        id: ubuntu-desktop
    
      locale: en_US.UTF-8
      keyboard:
        layout: de
      timezone: Europe/Berlin
    
      storage:
        layout:
          name: lvm  # Verwende LVM für die gesamte Festplatte. Alternativ geht auch direct
          sizing-policy: all  # Nutze den gesamten verfügbaren Speicherplatz
    
      network:
        version: 2
        ethernets:
          ens33:
            dhcp4: true
            dhcp6: true
    
      identity:
        username: csb_admin
        hostname: localhost
        password: "$5$H44IEgeGwUsnTmDw$nMpkWQEaO5hv6IZ.d9PXiw2NLWzlVAKWiR.n7w4.hx3"
    
      drivers:
        install: true  # Automatische Installation der Treiber | Im Test wurden Nvidia-Treiber + CUDA installiert 
    
      ssh:
        install-server: true
        allow-pw: false  # Passwort-Auth deaktiviert
        authorized-keys:
          - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDVZWi4m9PxvCKtatG+CM8NO4H94mrcKITkvcAg2tYEN2kokG4BuHwakfAWzIBU2XhWZodknCAbwXwYBbFa1mtvNEn5bEYQtv6zs9tb3SFOqwmg9/ldbA0Q9bBbVTRFkBGuvv0z/NJ7VKPm+OVjVL+JxT8IAj6XQI87SznmGoH/90cH/baXsJeDZlvjwhi7u8N5Slb533OX/RA/OIfYqjJO2x05eHGHyrCbIU24wzCrfO+sx2EjP4yQ1oy2tue+WmYUNrdMvG2YwfAmuEE21SNcBoYZIpJi63MqtUAklc3JtfJqe1ZdNno0yeoX1h39au6UwHntCKB66GUTA7o+jiowmUOoE88AFPUBpJBksHznW1J1BFaWt2RcdDJXhWONg0cBXWH0DFQJygsIx4tO0OwYT10JYQsOScQIemjRududmBqa1S54jCsz9sNLRdqkEWqyNFMYC5Hv+EhmVSSeWtpqYCkBpG0i4K3aUIIPsmViXxXxNOhZ8eRM8tg707bptNlVW7z10hMDAh5GAOToTKDL1IWyRjLhd23gqkAyAT2v3ZZSbulO6Yaiyh7m7EAAWuz7QFWa99+eBnCYTHL4XB80Ge3LoAsVE62Fow7juvAHAV37ZjM+YkYXORTx1rq8HPvUxAeXOGqBhyi7lWQDFGnW7kLPC1Vq/YbHXTPX69JScw==
    
      user-data:
        users:
          - name: csb_user
            shell: /bin/bash
            lock_passwd: false
            passwd: "$6$NAC8WrL4TH0Cd82B$CqNILbIn2wqw7hDWEKXDdFGdhjyvMY8lxJFSYHe18vuuIZn7Ta1QT7np9rEO6TYJTE8i7wzv7ptUorBxkBQu3."
            groups: users
            ssh_authorized_keys:
              - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDVZWi4m9PxvCKtatG+CM8NO4H94mrcKITkvcAg2tYEN2kokG4BuHwakfAWzIBU2XhWZodknCAbwXwYBbFa1mtvNEn5bEYQtv6zs9tb3SFOqwmg9/ldbA0Q9bBbVTRFkBGuvv0z/NJ7VKPm+OVjVL+JxT8IAj6XQI87SznmGoH/90cH/baXsJeDZlvjwhi7u8N5Slb533OX/RA/OIfYqjJO2x05eHGHyrCbIU24wzCrfO+sx2EjP4yQ1oy2tue+WmYUNrdMvG2YwfAmuEE21SNcBoYZIpJi63MqtUAklc3JtfJqe1ZdNno0yeoX1h39au6UwHntCKB66GUTA7o+jiowmUOoE88AFPUBpJBksHznW1J1BFaWt2RcdDJXhWONg0cBXWH0DFQJygsIx4tO0OwYT10JYQsOScQIemjRududmBqa1S54jCsz9sNLRdqkEWqyNFMYC5Hv+EhmVSSeWtpqYCkBpG0i4K3aUIIPsmViXxXxNOhZ8eRM8tg707bptNlVW7z10hMDAh5GAOToTKDL1IWyRjLhd23gqkAyAT2v3ZZSbulO6Yaiyh7m7EAAWuz7QFWa99+eBnCYTHL4XB80Ge3LoAsVE62Fow7juvAHAV37ZjM+YkYXORTx1rq8HPvUxAeXOGqBhyi7lWQDFGnW7kLPC1Vq/YbHXTPX69JScw==
          
          - name: csb_admin
            shell: /bin/bash
            lock_passwd: false
            sudo: "ALL=(ALL) NOPASSWD:ALL"  # Admin-Benutzer mit Sudo-Rechten - Optional NOPASSWD weglassen für PW-Abfrage
            groups: sudo
            passwd: "$5$H44IEgeGwUsnTmDw$nMpkWQEaO5hv6IZ.d9PXiw2NLWzlVAKWiR.n7w4.hx3"
            ssh_authorized_keys:
              - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDVZWi4m9PxvCKtatG+CM8NO4H94mrcKITkvcAg2tYEN2kokG4BuHwakfAWzIBU2XhWZodknCAbwXwYBbFa1mtvNEn5bEYQtv6zs9tb3SFOqwmg9/ldbA0Q9bBbVTRFkBGuvv0z/NJ7VKPm+OVjVL+JxT8IAj6XQI87SznmGoH/90cH/baXsJeDZlvjwhi7u8N5Slb533OX/RA/OIfYqjJO2x05eHGHyrCbIU24wzCrfO+sx2EjP4yQ1oy2tue+WmYUNrdMvG2YwfAmuEE21SNcBoYZIpJi63MqtUAklc3JtfJqe1ZdNno0yeoX1h39au6UwHntCKB66GUTA7o+jiowmUOoE88AFPUBpJBksHznW1J1BFaWt2RcdDJXhWONg0cBXWH0DFQJygsIx4tO0OwYT10JYQsOScQIemjRududmBqa1S54jCsz9sNLRdqkEWqyNFMYC5Hv+EhmVSSeWtpqYCkBpG0i4K3aUIIPsmViXxXxNOhZ8eRM8tg707bptNlVW7z10hMDAh5GAOToTKDL1IWyRjLhd23gqkAyAT2v3ZZSbulO6Yaiyh7m7EAAWuz7QFWa99+eBnCYTHL4XB80Ge3LoAsVE62Fow7juvAHAV37ZjM+YkYXORTx1rq8HPvUxAeXOGqBhyi7lWQDFGnW7kLPC1Vq/YbHXTPX69JScw==
    
        runcmd:
          # VSCode-Erweiterungen für alle Nutzer installieren - Durch runcmd automatisch nach dem ersten Reboot. Funktioniert sonst nicht
          - |
            export PATH=$PATH:/snap/bin
            for user in csb_user csb_admin; do
              sudo -u $user code --install-extension ms-dotnettools.dotnet-interactive-vscode
              sudo -u $user code --install-extension ms-vscode-remote.remote-containers
            done
    
          # Benutzer zur docker-Gruppe hinzufügen
          - |
            for user in csb_user csb_admin; do
              usermod -aG docker $user
            done
    
          # ARCitect installieren und konfigurieren
          - |
            mkdir -p /opt/ARCitect
            # Holen der neuesten Version von ARCitect
            LATEST_URL=$(curl -s https://api.github.com/repos/nfdi4plants/ARCitect/releases/latest | grep browser_download_url | grep AppImage | cut -d '"' -f 4)
            if [ -n "$LATEST_URL" ]; then
              wget -O /opt/ARCitect/ARCitect.AppImage "$LATEST_URL"
              chmod +x /opt/ARCitect/ARCitect.AppImage
              # AppImage extrahieren - Die folgenden Schritte sind notwendig, da ARCitect sonst nur im --no-sandbox Modus startet
              cd /opt/ARCitect
              ./ARCitect.AppImage --appimage-extract
              # Berechtigungen setzen auf root
              chown root:root squashfs-root/chrome-sandbox
              chmod 4755 squashfs-root/chrome-sandbox
              # Wrapper-Skript erstellen
              echo '#!/bin/bash' > /usr/local/bin/ARCitect
              echo '/opt/ARCitect/squashfs-root/AppRun "$@"' >> /usr/local/bin/ARCitect
              chmod +x /usr/local/bin/ARCitect
              # Berechtigungen für /opt/ARCitect setzen
              chmod -R a+rx /opt/ARCitect
            else
              echo "Konnte die neueste Version von ARCitect nicht finden."
              exit 1
            fi
    
      packages:
        - git 
        - git-lfs
        - python3-pip
        - net-tools
        - libfuse2  # Notwendig für AppImage-Unterstützung von ARCitect unter Ubuntu 
    
      snaps:
        - name: pycharm-community
          channel: stable
          classic: true
        - name: code  # VSCode
          channel: stable
          classic: true
    
      late-commands:
        # .NET 8.0 SDK und Runtime für Ubuntu 2404
        - |
          curtin in-target --target=/target -- bash -c '
            apt-get update && \
            apt-get install -y dotnet-sdk-8.0 && \
            apt-get install -y aspnetcore-runtime-8.0
          '
        # Docker installieren (aus dem offiziellen Docker-Repository)
        - |
          curtin in-target --target=/target -- bash -c '
            apt-get remove -y docker docker-engine docker.io containerd runc || true
            apt-get update
            apt-get install -y ca-certificates curl gnupg lsb-release
            mkdir -p /etc/apt/keyrings
            curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
            echo \
              "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
              $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
            apt-get update
            apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
            systemctl enable docker
            systemctl start docker
          '
      • Users inkl. PW & SSH
      • Keyboard, Language
      • Storage (nimmt 100%)
      • Network (V4 & V6 via DHCP)
      • Drivers (klappt, anscheinend auch Nvidia und CUDA)
      • Git
      • DotNET SDK & Runtime
      • Docker
      • VSCode
      • VSCode Extensions (nur im RUNCMD-Block - Wird nach Abschluss der Installation nach dem ersten Reboot durchgeführt)
      • RDP fehlt noch (xrdp)
      • Edit Funktioniert - Benutzer zur Docker Group hinzufügen
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment