Rocky Repo auf www: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 98: Zeile 98:
 
* dnf clean all
 
* dnf clean all
 
* dnf repolist
 
* dnf repolist
* dnf install -y vim
+
* dnf install -y mc
 
;local-baseos und local-appstream erscheinen in der Liste, Installation läuft über das lokale Repo
 
;local-baseos und local-appstream erscheinen in der Liste, Installation läuft über das lokale Repo
  

Version vom 6. Juli 2026, 18:18 Uhr

Lokales Repo aus DVD-ISO erstellen

Ziel
Der www-Server stellt den Inhalt der Rocky-9-Installations-DVD als lokales dnf-Repo bereit, damit Client-VMs im abgeschotteten DMZ-Netz ohne Internetzugang installieren können.

Platte vergrössern

Die DVD ist 14 GB gross, die bestehende Root-Partition hat dafür nicht genug Platz – die virtuelle Disk muss erst vergrössert werden
  • Virtualbox
    • Werkzeuge
      • Burgermenu
        • Medien
          • www.vdi auswählen
            • 50GB

Booten

Nach dem Vergrössern in VirtualBox sieht die VM die neue Disk-Grösse erst nach einem Neustart
  • fdisk -l
Zeigt
Disk ist jetzt 50 GiB, aber die LVM-Partition (sda2) ist noch auf der alten Grösse

Partition vergrössern

growpart erweitert die Partitionstabelle auf die neue Disk-Grösse
  • dnf install -y cloud-utils-growpart
  • growpart /dev/sda 2
  • fdisk -l
Kontrolle – sda2 reicht jetzt bis ans Ende der Disk. growpart zieht bei einer LVM-Partition automatisch ein pvresize nach, das PV meldet danach schon die neue Grösse

LV vergrössern

Freien Platz komplett dem root-LV zuschlagen. -l (klein) rechnet in Extents/Prozent statt in fester GB-Zahl – bei "alles" ist +100%FREE genauer als eine geschätzte GB-Angabe. Das -r löst automatisch xfs_growfs mit aus
  • lvextend -r -l +100%FREE /dev/rlm/root

Checken

  • lvs
  • lvdisplay
  • df -h /
Root-Partition zeigt jetzt die volle Grösse

Daten besorgen

DVD einlegen
  • mount /dev/sr0 /mnt/

Kopieren

  • cp -vr /mnt/* /var/www/html/
Kopiert den kompletten DVD-Inhalt (BaseOS, AppStream, repodata etc.) direkt in die DocumentRoot

Alte Index-Datei entfernen

httpd bringt eine eigene index.html mit, die sonst Vorrang vor dem Directory-Listing hat
  • rm -f /var/www/html/index.html

Directory-Listing erlauben

Damit Unterverzeichnisse wie /BaseOS/ ohne eigene index.html als Listing angezeigt werden (sonst 403). Options +Indexes im bestehenden Directory-Block ergänzen
  • vi /etc/httpd/conf.d/www.conf
    <Directory /var/www/html>
        Options +Indexes
        AllowOverride None
        Require all granted
    </Directory>
  • apachectl configtest
  • systemctl restart httpd

SELinux

Kopierte Dateien können vom cp-Vorgang einen falschen Kontext mitbringen
  • semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
  • restorecon -Rv /var/www/html

Test auf dem Server

Zeigt Directory-Listing mit BaseOS/, AppStream/ usw.

Repo-Metadaten

repodata/ ist bereits fertig auf der DVD enthalten (repomd.xml, primary/filelists/other, comps) – kein eigenes createrepo_c nötig
  • ls /var/www/html/BaseOS/repodata/
  • ls /var/www/html/AppStream/repodata/

Client-Konfiguration

Auf jeder Client-VM das lokale Repo eintragen. https statt http verwenden – der Server leitet HTTP automatisch auf HTTPS um, und dnf folgt diesem Redirect bei Metadaten nicht zuverlässig
  • vi /etc/yum.repos.d/local.repo
[local-baseos]
name=Local BaseOS
baseurl=https://www.it2XX.int/BaseOS/
enabled=1
gpgcheck=0

[local-appstream]
name=Local AppStream
baseurl=https://www.it2XX.int/AppStream/
enabled=1
gpgcheck=0
gpgcheck=0 reicht für den Kurs – kein GPG-Key-Import nötig. Die KIT-CA ist bereits im System-Trust-Store der Client-VMs verankert, TLS läuft ohne Zertifikatswarnung

Standard-Repos deaktivieren

Damit dnf sichtbar nur noch die lokalen Repos nutzt und nicht parallel vom (in der DMZ ohnehin nicht erreichbaren) Internet zieht
  • dnf config-manager --set-disabled baseos appstream extras epel epel-cisco-openh264

Test auf dem Client

  • dnf clean all
  • dnf repolist
  • dnf install -y mc
local-baseos und local-appstream erscheinen in der Liste, Installation läuft über das lokale Repo

Demo: Repo isoliert testen

Alle Standard-Repos deaktivieren, damit nur noch die lokalen Repos übrig bleiben – zeigt dass die Installation tatsächlich über das eigene Repo läuft und nicht übers Internet
  • dnf config-manager --set-disabled baseos appstream extras epel epel-cisco-openh264
  • dnf repolist
Nur noch local-baseos und local-appstream sichtbar
Installation testen – funktioniert nur über das lokale Repo
  • dnf install -y mc
Standard-Repos wieder aktivieren
  • dnf config-manager --set-enabled baseos appstream extras epel epel-cisco-openh264
  • dnf repolist
Alle Repos wieder sichtbar