# See https://airsonic.github.io/docs/install/war-standalone/ class airsonic { package { [ 'default-jre', ]: ensure => present, } group { "airsonic": ensure => present, allowdupe => false, } user { "airsonic": ensure => present, allowdupe => false, shell => '/bin/false', gid => 'airsonic', home => '/var/lib/airsonic', require => Group['airsonic'], } file { [ '/var/lib/airsonic', ]: ensure => directory, owner => 'airsonic', group => 'airsonic', mode => '0750', require => User['airsonic'], } file { '/usr/local/sbin/airsonic-download': ensure => present, owner => root, group => root, mode => '0755', source => 'puppet:///modules/airsonic/airsonic-download', } exec { 'airsonic-download': #command => '/usr/bin/wget https://github.com/airsonic/airsonic/releases/download/v10.1.2/airsonic.war --output-document=/var/lib/airsonic/airsonic.war', command => '/usr/local/sbin/airsonic-download', creates => '/var/lib/airsonic/airsonic.war', user => root, require => File['/var/lib/airsonic', '/usr/local/sbin/airsonic-download'], } file { '/etc/default/airsonic': ensure => present, owner => 'airsonic', group => 'airsonic', mode => '0644', source => [ 'puppet:///modules/site_airsonic/airsonic.conf', 'puppet:///modules/airsonic/airsonic.conf', ], notify => Service['airsonic'], } file { '/etc/systemd/system/airsonic.service': ensure => present, owner => root, group => root, mode => '0644', source => 'puppet:///modules/airsonic/airsonic.service', notify => Exec['systemctl-enable-airsonic'], } exec { 'systemctl-enable-airsonic': command => '/bin/systemctl daemon-reload && /bin/systemctl enable airsonic', require => File['/etc/systemd/system/airsonic.service'], user => root, refreshonly => true, } service { 'airsonic': ensure => running, enable => true, require => [ File['/var/lib/airsonic', '/etc/default/airsonic', '/etc/systemd/system/airsonic.service', ], Exec['airsonic-download', 'systemctl-enable-airsonic'], Package['default-jre'], ], } }