Sascha Schulz
2025-03-10 198067ddffd2bc8f90fc93410b1b00eb89e1e280
index.html
@@ -4611,17 +4611,10 @@
               <section>
                  <p>Wichtige Aspekte beim produktiven Betrieb von Anwendungen</p>
                  <ul>
                     <li>Stabilität</li>
                     <li>Zugriffsschutz</li>
                     <li>Ausfallsicherheit</li>
                     <li>Sicherheitsupdates</li>
                  </ul>
               </section>
               <section>
                  <p>Wichtige Aspekte beim produktiven Betrieb von Anwendungen</p>
                  <ul>
                     <li>Zugriffsschutz</li>
                     <li>Ausfallsicherheit</li>
                     <li>Sicherheitsupdates</li>
                  </ul>
               </section>
               <section>
@@ -4630,8 +4623,7 @@
                     <li>Webserver</li>
                     <li>Proxies</li>
                     <li>Laufzeitumgebungen</li>
                     <li>Application-Server</li>
                     <li>Prozess-Manager</li>
                     <li>Application-Server / Prozess-Manager</li>
                     <li>Remote-Zugänge</li>
                  </ul>
               </section>
@@ -4645,6 +4637,241 @@
                     <li>Ubuntu Server 24.04</li>
                  </ul>
               </section>
               <section>
                  <p>Eckdaten für die VM</p>
                  <ul>
                     <li>2048 MB Ram</li>
                     <li>Netzwerktyp "Brücke" / "Bridge"</li>
                     <li>Linux / Ubuntu (64-Bit)</li>
                     <li>20GB HDD</li>
                  </ul>
               </section>
               <section>
                  <img data-src="/assets/images/ubuntu-installation.png">
               </section>
               <section>
                  <p>Nach der Installation in der VM mit den bekannten Credentials anmelden und die IP in Erfahrung bringen:</p>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        ip a
                     </code>
                  </pre>
               </section>
               <section>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        2: enp0s3: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP [...]
                           link/ether 08:00:27:43:e5:2c brd ff:ff:ff:ff:ff:ff
                           inet 10.0.0.166/16 metric 100 brd 10.0.255.255 scope global dynamic enp0s3
                              valid_lft 863191sec preferred_lft 863191sec
                     </code>
                  </pre>
               </section>
               <section>
                  <h3>Anmeldung am Server</h3>
                  <p>Nach der Installation am Server anmelden</p>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        ssh user@domain [-p 12345]
                     </code>
                  </pre>
                  <p>Beispiele für eine Domain: localhost, www.example.com, 127.0.0.1, [0:0:0:0:0:0:0:1], [::1]</p>
               </section>
               <section>
                  <p>Es kann auch der bei der Installation des Servers angegebene Host-Name verwendet werden, z.B.</p>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # "vm-ubuntu-server"
                        ssh user@vm-ubuntu-server
                     </code>
                  </pre>
               </section>
               <section>
                  <h3>Pakete aktualisieren</h3>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # Paketlisten updaten
                        sudo apt update
                        # Pakete updaten
                        sudo apt upgrade
                     </code>
                  </pre>
                  <p>sonstige Werkzeuge installieren</p>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        sudo apt install vim git curl build-essential
                     </code>
                  </pre>
               </section>
               <section>
                  <h3>Ordner-Navigation</h3>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # In einen Ordner gehen
                        cd [Ordner]
                        # Zum vorherigen Ordner gehen
                        cd -
                        # Längere Ordnerpfade sind auch möglich
                        # realtiv
                        cd a/b/c/d
                        # absolut
                        cd /var/www/html
                     </code>
                  </pre>
               </section>
               <section>
                  <h3>Ordner erstellen und löschen</h3>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # Einen Ordner erstellen
                        mkdir my-folder
                        # Mehrere Hierarchien
                        mkdir -p a/b/c/d
                        # Mehrere Ordner
                        mkdir a b c
                        # Ordner rekrusiv löschen
                        rm -rf [Ordner]
                     </code>
                  </pre>
               </section>
               <section>
                  <h3>Ordner und Dateien kopieren und verschieben</h3>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # Ordner kopieren
                        cp -r quelle ziel
                        # Datei kopieren
                        cp quelle ziel
                        # Ordner und Dateien verschieben
                        mv quelle ziel
                     </code>
                  </pre>
               </section>
               <section>
                  <h3>Eigenen User anlegen</h3>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # User anlegen
                        # -m => Home Ordner anlegen
                        # -G => zur angegeben Gruppe hinzufügen
                        # -s => Pfad zur Shell, in diesem Fall /bin/bash
                        useradd [user] -m -G sudo -s /bin/bash
                        # Passwort setzen
                        passwd [user]
                     </code>
                  </pre>
               </section>
               <section>
                  <h3>Authentifizierung per SSH-Key-Pair</h3>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # Schlüsselpaar lokal erzeugen, falls nicht vorhanden
                        ssh-keygen
                        # Inhalt aus Datei kopieren:
                        cat ~/.ssh/id_rsa.pub
                     </code>
                  </pre>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # Auf dem Server in folgenden Datei einfügen (Public Key pro Zeile):
                        ~/.ssh/authorized_keys
                     </code>
                  </pre>
                  <p>anschließend wird kein Passwort mehr beim Login benötigt</p>
               </section>
               <section>
                  <h3>Apache einrichten</h3>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        sudo apt install apache2
                     </code>
                  </pre>
                  <p>Einrichtung überprüfen</p>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # Oder im Browser aufrufen:
                        curl http://vm-ubuntu-server
                     </code>
                  </pre>
               </section>
               <section>
                  <p>Aufbau der Apache-Konfiguration</p>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # Hauptdatei, selten gebraucht
                        /etc/apache2/apache2.conf
                        # Verfügbare vhosts
                        /etc/apache2/sites-available/*.conf
                        # Aktivierte vhosts, Symlinks auf obige verfügbare
                        /etc/apache2/sites-enabled/*.conf
                     </code>
                  </pre>
               </section>
               <section>
                  <h3>vhost (virtual host) einrichten</h3>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        cd /etc/apache/sites-available
                        # 000-default.conf als Vorlage nutzen
                        # vm-ubuntu-server durch eigenen Host ersetzen
                        sudo cp 000-default.conf www.vm-ubuntu-server
                        # 'ServerName' einkommentieren und mit eigenem Host anpassen
                        # Weitere Optionen je nach Fall anpassen, z.B. 'DocumentRoot'
                        sudo vim www.vm-ubuntu-server
                        # vhost / Site aktivieren
                        sudo a2ensite www.vm-ubuntu-server.conf
                     </code>
                  </pre>
               </section>
               <section>
                  <p>Domains lokal auf dem Entwicklungssystem bekannt machen:</p>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # Windows
                        # z.B. mit Notepadd++ editieren. Benötigt Administrator-Rechte
                        C:\Windows\System32\drivers\etc\hosts
                        # Unix
                        # z.B. mit vim editieren. Benötigt Administrator-Rechte
                        /etc/hosts
                     </code>
                  </pre>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # unten hinzufügen
                        [IP des Servers] www.vm-ubuntu-server
                     </code>
                  </pre>
               </section>
               <section>
                  <h3>Dateien zum Server kopieren</h3>
                  <pre>
                     <code class="bash" data-trim data-line-numbers>
                        # scp [Quelle] [Ziel], z.B.
                        scp index.html user@domain:~/html
                     </code>
                  </pre>
               </section>
               <section>
                  <h3>Aufgabe</h3>
                  <p>Richte die Sub-Domain <code>www.vm-ubuntu-server</code> ein und liefere unter dieser Adresse eine beliebige HTML-Seite aus. Dies kann eine minimale selbstgeschriebene oder eine beliebige komplexere aus den vergangenen Veranstaltungen sein, z.B. aus den CSS-Themen (jedoch keine NodeJS-Projekte).</p>
               </section>
            </section>
         </div>
      </div>