class: center, middle ![img80](commonInstall-logo-transparent.webp) #### Vereinfachte Konfiguration und Installation von Linux ### Hauke Goos-Habermann #### https://goos-habermann.de --- ### Über mich - Entwickler des
Softwareverteilungssystems m23
- Organisator der
Kieler Open Source und Linux Tage
-
Dienstleister zu m23, Linux und Freier Software
- Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* - Wöchentlicher Livestream *"Jean und Hauke Show"* auf https://www.youtube.com/c/LinuxGuides - *"Nicht der Weisheit letzter Schluß"* mit **beruflichen** oder **privaten Projekten** auf
tube.tchncs.de/c/ndwls
und
youtube.com/@nichtderweisheit
- Verwendet commonInstall für wiederholbare Installationen. --- ### commonInstall? ![img50l](commonInstall-logo-transparent.webp) **commonInstall** ist eine über die Jahre stetig erweiterte **Sammlung von BASH-Funktionen** zur **Installation** und **Konfiguration** von **Linux-Systemen** (überwiegend für **Debian, Ubuntu** und **Linux Mint**). Mit wenigen Parametern und der dazu passenden commonInstall-Funktion können z.B. * ein Mailserver (SMTP, POP3 und IMAP) * der TDE-Desktop * SSH-Absicherung * Basispakete * VirtualBox aus den offiziellen Quellen * SyncThing und eine Reihe weiterer Software installiert und eingerichtet werden. Informationen ⇒ https://goos-habermann.de/ci --- ### Beispiel ![img20r](pinguin08.webp) Durch **Nacheinaderausführen** von CI-Funktionen lassen sich individuelle Installationen und Konfigurationen für **Server, Desktoprechner, Laptops, Tablets, eingebettete Systeme** uvm. zusammenstellen und **automatisiert wiederholen**: ```bash CI_installLaTeX CI_installBrowsersMailer CI_inst_brave CI_installLibreOffice CI_src_Trinity CI_installTrinity CI_enableSSHOldDSS CI_secureSSHd CI_keyBasedSSHRootLogin CI_disableSSHRootLogin CI_disableHashKnownHosts CI_SSHClientKeepAlive ``` --- ### commonInstall "installieren" und laden ![img20r](pinguin01.webp) commonInstall-Funktionen könnt Ihr (viele als **root**) auf **Debian, Ubuntu, Linux Mint, Raspberry Pi OS** (oder wahrscheinlich auch **anderen Debian-Derivaten**) nutzen. Zuerst **ladet** Ihr die commonInstall-**Bibliothek** (z.B. nach /usr/share) herunter: ```bash wget https://goos-habermann.de/commonInstall.inc\ -O /usr/share/commonInstall.inc ``` Bevor Ihr commonInstall-Funktionen nutzen könnt, müßt Ihr die **Bibliothek laden**: ```bash . /usr/share/commonInstall.inc ``` **ACHTUNG:** Die Verwendung geschieht auf **eigenes Risiko** und und kann zu komplettem **Datenverlust** und/oder **nicht** mehr **nutzbarem/bootfähigen Servern** führen. --- ### commonInstall-Funktionen verwenden ![img20r](pinguin02.webp) Danach könnt Ihr die Funktionen nutzen (z.B. Installation eines Mailservers (SMTP, POP3 und IMAP)) mit: ```bash # Leerzeichen getrennte Liste mit Domains, für die # der Mailserver zuständig ist: export DT_INST_domain="m1.a.moc m2.a.moc" # Hostname des Servers export DT_INST_hostname="a.moc" # commonInstall-Funktionen starten CI_mailServerInstall ``` Mehr zu Mailservern: https://goos-habermann.de/weisheit-10160-Und-nochmal-Mailserver-DMARC-Reports-DKIM-Port-DNS-auslesen-Testmail-senden-Automatisieren-mit-commonInstall Die weiteren Funktionen findet Ihr in der
Bibliotheks-Datei
beschrieben. --- ### TDE installieren ![img33r](pinguin03.webp) Die
Trinity Desktop Environment
(TDE) ist eine alternative Benutzeroberfläche, die auf KDE 3.5. basiert und stetig weiterentwickelt ist. ```bash # Externe Paketquelle aktivieren CI_src_Trinity # TDE installieren CI_installTrinity ``` Mehr zu TDE: https://goos-habermann.de/weisheit-10089-Meine-Multimediaplattform-Linux-Mint-21--TDE Alle Videos: https://goos-habermann.de/videos --- ### Softwarezusammenstellungen ![img33r](pinguin04.webp) Auf Desktopsystemen installiere ich fast immer dieselben Pakete. Daher gibt es dafür Zusammenstellungen ;-) ```bash # Debian-Multimedia-Paketquelle aktivieren CI_src_deb-multimedia # Installiert Firefox, Chromium, Thunderbird CI_installBrowsersMailer # Brave-Browser installieren CI_inst_brave # Installiert LibreOffice CI_installLibreOffice # Installiert Basispakete für Desktops CI_installDebiansPackages # Installiert unetbootin CI_installUnetbootin ``` --- ### SSH ![img20r](pinguin05.webp) ```bash # Trägt den öffentlichen SSH-Schlüssel aus der # Variable "$SSH_KEY_b" zum paßwortlosen Einloggen # für den Benutzer "b" ein CI_addSSHKeyUserDir 'b#/home/b' "$SSH_KEY_b" # Alte DSA/DSS-Schlüssel erlauben (nicht benutzen) CI_enableSSHOldDSS # SSHd absichern: SSHGuard+Zugriff nur über Schlüssel CI_secureSSHd # SSHd absichern: Login als root nur über Schlüssel CI_keyBasedSSHRootLogin # SSHd absichern: Kein Login als root CI_disableSSHRootLogin # IPs/Hostnamen in known_hosts nicht hashen CI_disableHashKnownHosts # SSH-Verbindung auch bei Nichtbenutzung offenhalten CI_SSHClientKeepAlive ``` --- ### Virtualisierung ![img20r](pinguin06.webp) Mit dabei sind auch gleich CI-Funktionen zum Installieren von Virtualisierungslösungen: ```bash # Installiert VirtualBox aus den offiziellen Quellen CI_install_VirtualBox # Installiert KVM und libvirt und legt den Benutzer # "lvirt" an. # In der Variablen "$MAIN_SSH_KEY" kann gleich ein # öffentlicher SSH-Schlüssel mitgegeben werden CI_installKVMLibVirt ``` --- ### Ballast loswerden ![img20r](pinguin07.webp) Manchmal bringen Distributionen auch Ballast mit, der stört ;-) Mit den passenden CI-Funktionen (für Ubuntu 18 und 20), kann dieser entfernt werden: ```bash # Entfernt Ubunts Landscape CI_removeLandscape # Entfernt installierte snaps und den snap-Dämon CI_removeSnap # cloud-init entfernen CI_purgeCloudInit # Entfernt von mir ungewünschte/unbenötigte Pakete CI_removeUnwanted # Deaktiviert und deinstalliert unattended-upgrades CI_removeUnattendedUpgrades # CUPS und Samba deaktivieren CI_disableCupsSamba ``` --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de