diff --git a/manifests/site.pp b/manifests/site.pp index b34d975..13aef52 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -22,12 +22,22 @@ define lodgeit::site( docroot => "/srv/www/${name}/" } - file { "/etc/init/${name}-paste.conf": - ensure => present, - content => template('lodgeit/upstart.erb'), - replace => true, - require => Class['httpd'], - notify => Service["${name}-paste"], + if versioncmp($::operatingsystemmajrelease, '16.04') >= 0 { + file { "/etc/systemd/system/${name}-paste.service": + ensure => present, + content => template('lodgeit/systemd.erb'), + replace => true, + require => Class['httpd'], + notify => Service["${name}-paste"], + } + } else { + file { "/etc/init/${name}-paste.conf": + ensure => present, + content => template('lodgeit/upstart.erb'), + replace => true, + require => Class['httpd'], + notify => Service["${name}-paste"], + } } file { "/srv/lodgeit/${name}": @@ -83,8 +93,8 @@ define lodgeit::site( } service { "${name}-paste": - ensure => running, - provider => upstart, - require => Class['httpd'], + ensure => running, + enable => true, + require => Class['httpd'], } } diff --git a/templates/systemd.erb b/templates/systemd.erb new file mode 100644 index 0000000..e0af90d --- /dev/null +++ b/templates/systemd.erb @@ -0,0 +1,9 @@ +[Unit] +Description="<%= @name %> Lodgeit server" +# Author "Andrew Hutchings " + +[Service] +ExecStart=/usr/bin/python /srv/lodgeit/<%= @name %>/manage.py runserver -h 127.0.0.1 -p <%= @port %> + +[Install] +WantedBy=multi-user.target