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, derlast_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 einerauthorized_keys
-Datei für denroot
-Benutzer. (Default:false
)
ubuntu_server::postfix
Einfach Installation und Konfiguration von Postfix, primär zum Aufnehmen und Weiterleiten von Systemnachrichten.
-
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 setztvm.swappiness
auf 90 für frühzeitiges auslagern. (Default:false
)