# Common settings which all hosts should have applied class profiles::common ( String $timezone = 'UTC', Array[String] $locales = [ 'en_US.UTF-8', ], ) { $os_fam = $facts['os']['family'].downcase() if defined("profiles::common::${os_fam}") { include "profiles::common::${os_fam}" } file { '/etc/hostname': content => "${::hostname}\n", } file_line { 'hosts ourself': ensure => present, line => "::1\t${::fqdn}\t${::hostname}", match => $::fqdn, path => '/etc/hosts', } file { '/etc/localtime': ensure => link, target => "/usr/share/zoneinfo/${timezone}", } if $facts['os']['name'] == 'Debian' { ensure_packages (['locales'], { before => Exec['locale-gen'], }) } # TODO possibly check in /usr/share/i18n/locales if file exists # there $fixed_locales = ($locales.map |$locale| { if $locale =~ /^[^.]*\.(.*)$/ { "${locale} ${1}" } else { "${locale} UTF-8" } } + [ '' ]) file { '/etc/locale.gen': content => $fixed_locales.join("\n") } ~> exec { 'locale-gen': path => [ '/bin', '/usr/bin', '/usr/sbin', ], refreshonly => true, } file { 'Default locales': path => '/etc/locale.conf', content => @(EOF) LANG=en_US.UTF-8 LC_TIME=sv_SE.UTF-8 | EOF } # Min priority, so it can still be overwritten file { '/etc/profile.d/00-terminal-name.sh': source => 'puppet:///modules/profiles/terminal-name.sh', } if $facts['virtual'] == 'systemd_nspawn' { include ::profiles::nspawned } ensure_packages([ 'tree', 'lsof', 'unzip', ]) ensure_packages(['nano'], { ensure => absent }) file { '/etc/ld.so.conf.d/usr-local.conf': content => "/usr/local/lib\n", } }