#include apt $apt_origins = [ 'origin=Debian,n=${distro_codename}', 'origin=Debian,n=${distro_codename}-updates', 'origin=Debian,n=${distro_codename},label=Debian-Security', 'origin=Debian,n=${distro_codename}-security,label=Debian-Security', 'origin=IT-Zukunft Schule,n=${distro_codename},label=IT-Zukunft Schule', ] class apt_via_squid_deb_proxy { file_line { 'apt.conf_httpproxy': path => '/etc/apt/apt.conf', line => 'Acquire::http::Proxy "http://unfiltered:8000";', match => '^(|#\s*)Acquire::http::Proxy\ ".*";$', } file_line { 'apt.conf_ftpproxy': path => '/etc/apt/apt.conf', line => 'Acquire::ftp::Proxy "http://unfiltered:8000";', match => '^(|#\s*)Acquire::ftp::Proxy\ ".*";$', } } class ssh_pubkeys_admins { # Mike Gabriel, IT-Zukunft Schule ssh_authorized_key { 'mike@minobo': type => 'ssh-rsa', key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDn2moKR4u3yJW+/hvwmhUDjiLBxiMPB+46YO9iEo8HXsdulpMi20hi2TTmWA0w3hog1IEnre6C7UGHcZG0HfPg+eROIuuXRcOfg3WP/IBV0KMF4DTa1KDoN/Nw7HMlhWxGxFrdbumAoj/s2ZaA/of1fpaPKOhunF8S9Ch60LYmgnR3tzJW/b0jS9fww8o/rMB3pZy2WSW0uUfpOIbDv+XHhNiC/iu8IgD+M5KkK+qbNZFPoTQkebc0RPRBcOrmEYroofFGg+7jPU++AEKJUKSaGjZRWzACuXiUzTo2F9fT09EMWU4oiYV9zRqjx6ctncwfEB4qOfoRUycfxBSJk7t7', user => 'root', } # Daniel Teichmann, DAS-NETZWERKTEAM ssh_authorized_key { 'daniel@nwt-01': type => 'ssh-rsa', key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQCytDYygwrARkiy/1cQ8x9otmWgE3k6EH3ymeHXaFnP/Du0BDRgGuLtdL1yj4OqE4tKqKdXOa1kULLQdbQ0C0ogGGxpZaza1TdxKTpB2YSx1L3LjhzG4KSr0hz/u9qpk7U1PVRi5N7tO/x7eRZWzbuH5UXxLemb1jj5X+q/siAi+8rFfmQmYta+ea4XDQIjfMiKU5ExGjg3DufhyPtsb75zsU9ZcoXo8j4lkjeCJegK7rdKrlmZqMidrZHd8pPN5Tjrn0LMg1fRL0Z+wwHxawhruaw+LHq2iJ3plWJ9igCwvUcXY3KtL1r9owxZATE5CN17OFxCbEFDqsS63OTYr3Xt', user => 'root', } } class ssh_pubkeys_firedadmins { # Lucian Anderwald, IT-Zukunft Schule ssh_authorized_key { 'lucian@SATELLITE': ensure => 'absent', type => 'ssh-rsa', key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQC71S/LYktwTalKjE6Sb7XlOyV1tr1O+codh4C3g9uVtjqytYj/Lx6hExxegwN2tiTAjb3skEKpdg7uRbmpEZBtyST/UrrJCB0l0KbjJelfh4MANuRF+H9CNAPwaxcLfCWeTFwmQW8mcSHE20ljY7kpJykEoihBVjK49k+kD+sphIG1o4BU8nQii0i5/U2HqHkPZHzCIjIprN9kTx/n/zMmCLwuIW58KJitG/ttBXPq+TMsN/zcUQm7/PL7UmIMlvUtKzApuM36PUyah7/rpOB5mIYrqFcDXSBUpFLT1CIvfH6ZR5umhnwiRXDsVfP8e0WB1JhOZV1LqOez8s7c4a6/', user => 'root', } # Marius Rasch, IT-Zukunft Schule ssh_authorized_key { 'marius@soledad': ensure => 'absent', type => 'ssh-rsa', key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQCuoOfxXovfHlODw7dDlfcLKHaD7fotGT5Kb/HADNQY+GMINKy9Zu71/qpjVZtrckLl92nS7ygCf7+KpyfihdJgKBIeacikD4Y8/slDA2AbBuTZsHOp9HEzopmE1DbJbjeFtnjv8usPx/zB0buEtXy7Fa+bMIu6gIDIK7pO83kqiI/uv1sDyyaElw50Hn8tvZg7OtVHuShxjRCZVDolqUKBDDrQ+lZQG24XeMrQ4cEZ9yLYNAeeLwqqiWqnQ0jrCf2JYI4V7Oo1tvjKJM8HiVFSjsPh8cEu5iLBi08fuKCR7p1efSTOsy06HeraZpWJw5MH+At7sy3qjuuJ0oftrg3n', user => 'root', } # Marcel Sandow, IT-Zukunft Schule ssh_authorized_key { 'marcel@Bigblue': ensure => 'absent', type => 'ssh-rsa', key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQD3RPZTCJNjuV2vq8cO6AwPaVcjimg2DgRi2GitC/K4HzQuy0+RswVktyBACKpFogx254S1gjGoueYDfHq+T4hdoBussGln0MEsJKbEPEgWpGUZgurg3eWSAlzAWlhf9Goy5ZA362sOz3NsbY3DE+4CqxQWth+CctpGz1WzAvFy0K7oclfoncbOlftgEUukvKqJtSapxNAb+O+Ijjur/yaXKwk/dK7T+ZTPhZwChlxo50kLuiN8d3TYgFxc19LncJxq6s8BqQs70Z6m1CNHA07t6UD01Pto29TRNZfAnjuAP8FiO9Cu06cUnHrwlG2jgvr5hA0rLFYnVtgGaQX6RCsT', user => 'root', } # Benjamin Schlüter, LOGO EDV-Systeme GmbH ssh_authorized_key { 'benni@nbbenni': ensure => 'absent', type => 'ssh-rsa', key => 'AAAAB3NzaC1yc2EAAAADAQABAAACAQCy2oN7DNtxUXsKUEOsQiUWW9fupzVJAuoaGe3OWxlcZN1je9EpObfHEn5HuYJFcBgHK6PSapPIOJ9QXbLsUYX5vhQwx9oBOg7W8He0kNscO23kjVOLJGaebGX5zNpf96RjZIy/Jhwlb73hCMqTTdp+D3/VDIm7q1UbMn2KOl9ldGwPJCxppeBeHdr89CED1RX/XAXt69qknrC1wm1NXp+UGz9FaG9YWJPNrFXBBvrGCt1oUrB8bXo/poo+doIuVmMqvN0e7lBDOzsRIiorDEk/cFc+ZOUBn4QOeY7J7keX6l2v3AxRXq6ErZrX+ooa83duRGXj2HkNWufmAi0CqzeXqGFIw+9S9vextn/zCp15G737cruJ50nX5jK38I9fnf3rfGveYdGuf3ta3Eihw1QiK/J4DQeTFKscsR4+P/iRcnsFO4/aVgDbOtCeKIaLK0fh9JWa/H2NVaLWvYv7beDoPtZ7I8TW+SsnO6mykmqUg679fcA/ZTIoAfLfK99UDiOhpye0EtWxGMiBBHn0V1RbERNjfHEVcBnlvcnPRIqkfwOEK5bASXpzzPvEuEGkFlHhtuXQ6WoWdA8zCq+lakNLYeq8CemU9Hd20JgILOidP4Yt9yNuusTP/EDg0AN9fggQe/rc1Raui/5/rVgkzqYFp8DMbgFAAcBTqsBCh1GVDQ==', user => 'root', } } #class ssh_pubkeys_backupserver { # ssh_authorized_key { 'root@backup-01': # type => 'ssh-rsa', # key => '', # user => 'root', # } #} class lsb_release_with_version { file { '/etc/lsb-release': ensure => present, } file_line { 'lsb-release-with-version': path => '/etc/lsb-release', line => "DISTRIB_DESCRIPTION=\"Debian Edu / Skolelinux ${::operatingsystemrelease}\"", match => "^DISTRIB_DESCRIPTION=\"DebianEdu/Skolelinux\"$", } file_line{ 'lsb-release-remove-cruft-1': path => '/etc/lsb-release', ensure => absent, line => 'DISTRIB_DESCRIPTION="DebianEdu/Skolelinux"', } file_line{ 'lsb-release-remove-cruft-2': path => '/etc/lsb-release', ensure => absent, line => 'DISTRIB_DESCRIPTION=Debian Edu / Skolelinux 8.11', } file_line{ 'lsb-release-remove-cruft-3': path => '/etc/lsb-release', ensure => absent, line => 'DISTRIB_DESCRIPTION=Debian Edu / Skolelinux 9.6', } } class debian_edu_rootCA { file { 'empty_usrlocal_Debian-Edu_rootCA.crt': path => '/usr/local/share/ca-certificates/debian-edu/Debian-Edu_rootCA.crt', ensure => absent, } file { 'empty_etc_Debian-Edu_rootCA.crt': path => '/etc/ssl/certs/Debian-Edu_rootCA.crt', ensure => link, target => '/etc/ssl/certs/Debian-Edu_rootCA.pem', } } class anacron_on_battery { file_line { 'anacron-on-battery': path => '/etc/default/anacron', line => 'ANACRON_RUN_ON_BATTERY_POWER=yes', match => '^ANACRON_RUN_ON_BATTERY_POWER\=.*$', } } class login_manager { package { 'lightdm': ensure => 'latest', } package { 'arctica-greeter': ensure => 'latest', } package { 'ayatana-indicator-power': ensure => 'latest', } package { 'ayatana-indicator-sound': ensure => 'latest', } package { 'ayatana-indicator-datetime': ensure => 'latest', } package { 'ayatana-indicator-session': ensure => 'latest', } package { 'libayatana-indicator3-7': ensure => 'latest', } package { 'libayatana-ido3-0.4-0': ensure => 'latest', } } class browsers { package { firefox-esr: ensure => 'latest', } package { chromium: ensure => 'latest', } # $flashplayer_mozilla_package = $::operatingsystemrelease ? { # /(?i:8\..*)/ => 'hello', # default => 'flashplayer-mozilla', # } # package { $flashplayer_mozilla_package: # ensure => 'latest', # } # $flashplayer_chromium_package = $::operatingsystemrelease ? { # /(?i:8\..*)/ => 'hello', # default => 'flashplayer-chromium', # } # package { $flashplayer_chromium_package: # ensure => 'latest', # } } class office { package { libreoffice: ensure => 'latest', } } class linux { package { linux-image-amd64: ensure => 'latest', } } class cachefilesd { exec { 'modify_cachefilesd_yes': command => "/bin/sed -e 's/#RUN=yes/RUN=yes/g' -i /etc/default/cachefilesd" } exec { 'ensure_cachefilesd_enabled': command => "/bin/systemctl enable cachefilesd.service" } } class no_cachefilesd { exec { 'modify_cachefilesd_no': command => "/bin/sed -e 's/RUN=yes/#RUN=yes/g' -i /etc/default/cachefilesd" } exec { 'ensure_cachefilesd_disabled': command => "/bin/systemctl disable cachefilesd.service" } } class itzks_systems_common { package { 'itzks-systems-common': ensure => 'latest', } } class itzks_systems_workstation { package { 'itzks-systems-workstation': ensure => 'latest', } package { 'nscd': ensure => 'purged', } } class itzks_systems_roamingworkstation { package { 'itzks-systems-workstation': ensure => 'latest', } package { 'itzks-systems-roamingworkstation': ensure => 'latest', } package { 'nscd': ensure => 'purged', } } class itzks_systems_mainserver { package { 'itzks-systems-mainserver': ensure => 'latest', } } class itzks_systems_terminalserver { package { 'itzks-systems-terminalserver': ensure => 'latest', } } class itzks_systems_filter { package { 'itzks-systems-filter': ensure => 'latest', } } class itzks_systems_disklserver { package { 'itzks-systems-disklserver': ensure => 'latest', } } #class debian_edu_config { # package { 'debian-edu-config': # ensure => 'latest', # } #} class fsautoresizetab { file { '/etc/fsautoresizetab': ensure => 'present', path => '/etc/fsautoresizetab', replace => 'no', source => '/usr/share/debian-edu-config/fsautoresizetab', } } class fsautoresizetab_change_usr { file_line { 'usr': path => '/etc/fsautoresizetab', line => '/usr 10% 30g 5%', match => '^/usr\ .*', require => File["/etc/fsautoresizetab"], } } #node "all_hosts" { # class { 'ssh_pubkeys_admins': } # class { 'ssh_pubkeys_firedadmins': } # class { 'lsb_release_with_version': } # class { 'login_manager': } #} #node "all_servers" { # class { 'ssh_pubkeys_admins': } # class { 'ssh_pubkeys_firedadmins': } # class { 'ssh_pubkeys_backupserver': } # class { 'lsb_release_with_version': } #} node "tjener.intern" { class { 'ssh_pubkeys_admins': } class { 'ssh_pubkeys_firedadmins': } # class { 'ssh_pubkeys_backupserver': } class { 'itzks_systems_common': } class { 'itzks_systems_mainserver': } class { 'itzks_systems_terminalserver': } class { 'lsb_release_with_version': } class { 'unattended_upgrades': enable => 1, origins => $apt_origins, age => { 'max' => 10 }, auto => { 'clean' => 7, ### WE DON'T REBOOT TJENER }, upgradeable_packages => { download_only => 1, debdelta => 1, }, } class { 'browsers': } } node "filter.intern" { class { 'ssh_pubkeys_admins': } class { 'ssh_pubkeys_firedadmins': } # class { 'ssh_pubkeys_backupserver': } class { 'itzks_systems_common': } class { 'itzks_systems_filter': } class { 'lsb_release_with_version': } class { 'unattended_upgrades': enable => 1, origins => $apt_origins, auto => { 'clean' => 7, 'reboot' => true, }, upgradeable_packages => { download_only => 1, debdelta => 1, }, } class { 'browsers': } } # NOT PRESENT node "opsiserver.intern" inherits "all_servers" {} # NOT PRESENT node "displayserver.intern" inherits "all_servers" {} # NOT PRESENT node "contentserver.intern" inherits "all_servers" {} # NOT PRESENT node "devserver.intern" inherits "all_servers" {} # NOT PRESENT node "bibserv.intern" inherits "all_servers" { # Workstations node /workstation-.*\.intern$/ { class { 'ssh_pubkeys_admins': } class { 'ssh_pubkeys_firedadmins': } class { 'login_manager': } class { 'itzks_systems_common': } class { 'itzks_systems_workstation': } class { 'fsautoresizetab': } class { 'fsautoresizetab_change_usr': } class { 'lsb_release_with_version': } class { 'unattended_upgrades': enable => 1, origins => $apt_origins, auto => { 'clean' => 7, }, upgradeable_packages => { download_only => 1, debdelta => 1, }, } class { 'linux': } class { 'office': } class { 'browsers': } # class { 'debian_edu_config': } class { 'cachefilesd': } } # Notebooks node /(notebook-.*)\.intern$/ { class { 'anacron_on_battery': } class { 'ssh_pubkeys_admins': } class { 'ssh_pubkeys_firedadmins': } class { 'login_manager': } class { 'itzks_systems_common': } class { 'itzks_systems_roamingworkstation': } class { 'fsautoresizetab': } class { 'fsautoresizetab_change_usr': } class { 'lsb_release_with_version': } class { 'unattended_upgrades': enable => 0, origins => $apt_origins, auto => { 'clean' => 7, }, upgradeable_packages => { download_only => 1, debdelta => 1, }, } class { 'no_cachefilesd': } class { 'debian_edu_rootCA': } class { 'linux': } class { 'office': } class { 'browsers': } # class { 'debian_edu_config': } class { 'apt_via_squid_deb_proxy': } } # default / minimal node "default" { class { 'ssh_pubkeys_admins': } class { 'ssh_pubkeys_firedadmins': } class { 'lsb_release_with_version': } class { 'unattended_upgrades': enable => 1, origins => $apt_origins, auto => { 'clean' => 7, }, upgradeable_packages => { download_only => 1, debdelta => 1, }, } }