aboutsummaryrefslogtreecommitdiff
path: root/manifests/init.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/init.pp')
-rw-r--r--manifests/init.pp84
1 files changed, 84 insertions, 0 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
index 704e90d..dfd361b 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -1,2 +1,86 @@
+# 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'],
+ ],
+ }
}