Gitlab Community Edition Instance

Skip to content
Snippets Groups Projects
Benedikt Wegmann's avatar
Benedikt Wegmann authored
b5a50e7a
History

Ubuntu Server

Repository für allgemein verwendbare Puppet-Klassen, geeignet für Ubuntu-Server.

Klassen

ubuntu_server

Init-Klasse ist leer und tut nichts. Einzelne Klassen des Moduls müssen explizit deklariert werden.

ubuntu_server::autoremove_pgk

Installiert cronjob-Skript zum autmatischen entfernen von Paketen, die apt als nicht mehr benötigt betrachtet, durch apt-get autoremove.

ubuntu_server::changetrack

Installiert changetrack (siehe changetrack.sourceforge.net) zum Verfolgen und Benachrichtigen von root bei Änderungen in Konfigurationsdateien. So konfiguriert, dass alle dpkg bekannten Konfigurationsdateien und ein paar zusätzliche überwacht werden.

ubuntu_server::docker

Installiert das apt-Repository von dockerproject.org, installiert docker-engine und docker-compose, falls nicht vorhanden oder kleiner als minimale Version.

  • $docker_compose_latest_version (optional) = minimale Docker-Compose-Version, Versionen darunter werden auf die aktuelle aktualisiert.

ubuntu_server::docker_extras

Installiert ein cronjob zum Löschen nicht mehr referenzierter Volumes und Images und ein Upstart-Task zum Updaten von docker-engine vor dem Start des Docker-Services.

ubuntu_server::ethtool_setup

Setzt die "rx/tx ring parameters" auf 1024 für NICs (siehe man ethtool -G), außer OpenStack VMs. Benutzt die defined types aus ubuntu_server::ring_parameters.

ubuntu_server::firewall

Diese Klasse kann Skripte in /etc/network/if-up.d/ und /etc/network/if-pre-up.d/ ablegen zum frühzeitigen Setzen von iptables-Regeln. Per Default wird nichts abgelegt. Änderungen setzen /var/run/reboot-required, um die Regeln aktiv zu schalten, was nicht in Laufzeit geschieht. Ziel ist es, Regeln von Docker und anderen Diensten nicht nachträglich zu stören, weshalb die Skripte die Regeln früh beim Boot schalten sollen.

  • $firewall_scripts_pre_up (optional) = Puppet-Pfad zum Pre-Up-Script (Default: false)
  • $firewall_scripts_up (optional) = Puppet-Pfad zum Up-Skript (Default: false)

ubuntu_server::grub

Deaktiviert den graphischen Boot-Screen, setzt swapaccount=1 als Kernel-Pparameter für Docker und bei VMs ($::virtual == 'vmware') wird der IO-Scheduler auf noop gesetzt (siehe VMWare KB 2011861).

ubuntu_server::kernel_lts

Installiert das Metapaket für den aktuellsten LTS-Kernel und entfernt Metapakete für ältere LTS-Kernel. Zusammen mit ubuntu_server::autoremove_pgk (s.o.) werden so unbenutzte, veraltete Kernel automatisch entfernt.

ubuntu_server::monit

Installiert das lokale Monitoring-Tool Monit mit einer Standard-Konfiguration und Standard-Zugangsdaten.

  • $admin_emails = Ein Array (ggf. mit nur einem Element) mit den Email-Adressen, an die Monit Benachrichtigungen schicken kann.
  • $admin_user (optional) = Benutzername für die Anmeldung an Monit (Default: 'madmin'
  • $admin_passwd (optional) = Passwort für die Anmeldung an Monit (Default: 'gEt0ffMyL4wn')
  • $mailserver (optional) = Email-Server für den Versand von Emails (Default: 'mailer.gwdg.de')
  • $monit_basis_config_template (optional) = Puppet-Pfad zur Konfigurationsdatei für die Haupt-Konfiguration non Monit. Sollte Elemente aus der Default-Konfiguration enthalten, die überschrieben werden sollen (Default: 'ubuntu_server/etc/monit/conf.d/config.erb')
  • $monit_filesystems_config_template (optional) = Puppet-Pfad zu einem Template für die Konfiguration der Überwachung der Dateisysteme (Default: 'ubuntu_server/etc/monit/conf.d/filesystems.erb'). Das Default-Template ersetllt Einträge für alle lokalen und NFS-Dateisysteme.
  • $monit_config_dir (optional) = Puppet-Pfad zu einem Verzeichnis mit weiteren Konfigurationsdateien für zusätzliche Tests (Default: 'puppet:///modules/ubuntu_server/etc/monit/conf.d')
  • $docker_check (optional) = Falls true wird ein Skript installiert und ein Test eingerichtet, der auf gestoppte Container prüft. (Default: false)
  • $puppet_check (optional) = Fall true wird ein Test installiert, der last_run_report.yaml des Puppet Agent auf Fehler und ein Alter größer als 1 Stunde prüft. (Default: false)

ubuntu_server::motd

Entfernt einige Skripte aus /etc/update-motd.d, die den Login von SSH verzögern. Zusätzlich wird ein Hinweis auf Puppet eingefügt.

ubuntu_server::noipv6

Deaktiviert IPv6 im Kernel durch sysctl.

ubuntu_server::nrpe

Installiert NRPE-Daemon und Tests.

  • $nrpe_local_cfg (optional) = Hauptkonfiguration für den NRPE-Daemon (Default: 'puppet:///modules/ubuntu_server/etc/nagios/nrpe_local.cfg')
  • $nrpe_scripts (optional) = Verzeichnis mit zusätzlichen Skripts, die durch NRPE für Tests verwendet werden können. (Default: 'puppet:///modules/ubuntu_server/opt/nagios')
  • $daemon_options (optional) = zusätzliche Optionen für den Aufruf des Daemon (Default: '--no-ssl')
  • $enable_sudo_docker (optional) = Aktiviert einen Check, der auf gestoppte Docker-Containern prüft. Hierzu wird Nagios per sudo das Ausführen des Skripts erlaubt. (Default: false)

ubuntu_server::ntp

  • $gwdg_ntp_servers (optional) = Array mit NTP-Server. (Default: NTP-Server der GWDG)

ubuntu_server::openssh_server

Installiert OpenSSH-Server und schränkt Zugriffe auf Mitglieder der Gruppe root (Default) ein, entfernt einige schwache Cipher.

  • $port (optional) = Port des SSH-Servers. (Default: 22)
  • $groups_only (optional) = Einschränkung der SSH-Anmeldung auf folgende Gruppen als String. (Default: root)
  • $authorized_keys (optional) = false oder ein Puppet-Pfad zu einer authorized_keys-Datei für den root-Benutzer. (Default: false)

ubuntu_server::postfix

Einfach Installation und Konfiguration von Postfix, primär zum Aufnehmen und Weiterleiten von Systemnachrichten.

  • rootemails=ArraymitEmpa¨ngernfu¨rdieWeiterleitungenvonNachrichtenanroot.EinleeresArrayroot_emails = Array mit Empängern für die Weiterleitungen von Nachrichten an ```root```. Ein leeres Array ```
    root_emails=''``` überspringt Konfiguration von Relay und Weiterleitungen.
  • $relayhost (optional) = Emailserver, der die Weiterleitungen engegen nimmt. (Default: mailer.gwdg.de)
  • $generic_maps (optional) = Mapping für das Umschrieben von ausgehenden Emails, siehe Postfix-Dokumentation. (Default = puppet:///modules/ubuntu_server/etc/postfix/generic_maps)

ubuntu_server::puppet_agent

Konfiguriert vorhandenen Puppet-Agent für die Ausführung durch cron. Zusätzlich werden per rsyslog die Meldungen des Puppet-Agents in ein eigenes Log geleitet.

  • $nightly_only (optional) = Begrenzt die Zeiten im Cron-Job auf Stunden in der Nacht zur Ausführung von Puppet-Agent. (Default: false)
  • $on_reboot_once (optional) = Legt einen zusätzlichen Cron-job an, der nach dem Boot den Puppet-Agent ausführt. (Default: true)

ubuntu_server::remove_pkg

Entfernt einige, für den normalen Server-Betrieb unnötige Standard-Pakete von Ubuntu, z.B. 'mpt-status','avahi-*','landscape-common','landscape-client'.

ubuntu_server::ring_parameters

Defined Type für ubuntu_server::ethtool_setup.

ubuntu_server::simple_security

Installiert Tools für die Sicherheit des Servers, z.B. 'fail2ban','molly-guard'.

ubuntu_server::sysctl_hung_task_panic

Konfiguriert Kernel so, dass bei nach 120 Blockade eines Tasks eine Kernel-Panik ausgelöst wird und dass eine Kernel-Panik zum Neustart des Hosts führt (siehe auch).

ubuntu_server::unattended_upgrades

Installiert das Apt-Modul für automatische Updates. Die Konfiguration installiert Updates aus ofizillen Ubuntu-Quellen und Docker, wobei aber docker-engine nicht automatisch aktualisert wird.

  • $automatic_reboot (optional) = Aktiviert automatischen Neustart in der Nacht, falls dies für Aktualisierungen notwendig ist. (Default: false)
  • $autoremove (optional) = Entfernt nicht mehr benötigte Pakete, z.B. alte Kernel. (Default: true)
  • $allowed_origins (optional) = Array mit Quellenangaben für Apt, aus denen Updates installiert werden dürfen. (Default: ["\${distro_id}:\${distro_codename}-updates","LP-PPA-ubuntu-lxc-lxd-stable:\${distro_codename}","Docker:ubuntu-\${distro_codename}","Puppetlabs:\${distro_codename}"])
  • $package_blacklist (optional) = ein Array mit Paketnamen, die von automatischen Updates ausgeschlossen werden. (Default: 'docker-engine')

ubuntu_server::zram

Installiert zram-config Paket zur Einrichtung von komprimierten Blockdevices im RAM (zram) und mit aktiviertem Swap darauf.

  • $agressive (optional) = Setzt die Gesamtgröße der zram-Devices auf fast den gesamten RAM statt auf die Hälfte und setzt vm.swappiness auf 90 für frühzeitiges auslagern. (Default: false)