J'attendais les éléments suivants pour démarrer mon service :
service{'legacy':
ensure => running,
start => "cd /vagrant/nginx-reverse-proxy/legacy && /usr/bin/bundle exec ruby app.rb -o 127.0.0.1 -e production -p ${port}",
provider => 'systemd',
}
Je sais et comprends que la commande start n'est pas correcte, mais je ne sais pas comment démarrer l'application Ruby Sinatra. Je m'attendais en fait à ce que quelque chose comme ça fonctionne :
service{'legacy':
ensure => running,
command => "cd /vagrant/nginx-reverse-proxy/legacy && /usr/bin/bundle exec ruby app.rb -o 127.0.0.1 -e production -p ${port}",
provider => 'systemd',
}
Un peu comme cron. Je suis habitué aux daemontools, et le modèle de systemd est complètement différent. Dois-je créer le fichier unit moi-même ? Et lier le fichier unitaire ?
J'ai trouvé Comment activer le service instancié systemd avec Puppet ? qui démarre une sorte de périphérique USB. J'ai également trouvé camptocamp/Puppet-systemd qui semble gérer systemd lui-même. La documentation de Puppet sur fournisseur de services systemd sont assez peu détaillés.
Comment créer un service systemd à l'aide de Puppet ?