init.pp 1.14 KB
class supervisor {

  package { "supervisor":
    ensure   => installed,
    provider => pip,
  }

  service { "supervisord":
    ensure    => running,
    enable    => true,
    require   => [Package['supervisor'],
                  File['/etc/init.d/supervisord']],
    stop      => '/etc/init.d/supervisord stop',
    start     => '/etc/init.d/supervisord start',
    restart   => '/etc/init.d/supervisord restart',
    subscribe => File['/etc/supervisord.conf'],
  }

  case $operatingsystem {
    debian: { $supervisord_conf = "puppet:///modules/supervisor/debian-isnok-initscript" }
    ubuntu: { $supervisord_conf = "puppet:///modules/supervisor/ubuntu-initscript" }
  }

  file { '/etc/init.d/supervisord':
    source  => $supervisord_conf,
    mode    => '0755',
  }

  file { '/etc/supervisor':
    ensure => directory,
  }

  file { '/etc/supervisord.conf':
    source  => 'puppet:///modules/supervisor/supervisord.conf',
    require => File['/etc/supervisor'],
  }

  file { '/etc/supervisor/conf.d/':
    ensure  => directory,
    recurse => true,
    purge   => true,
    notify  => Service['supervisord'],
    require => File['/etc/supervisor'],
  }
}