Come abilitare il servizio istanziato da systemd con le marionette?


9

Ho il seguente servizio di marionette:

service { "getty@ttyUSB0.service": 
    provider => systemd,
    ensure => running,
    enable => true,
}

Quando provo ad applicare questa configurazione sul mio client, viene visualizzato il seguente errore:

err: /Stage[main[//Node[puppetclient×/Service[getty@ttyUSB0.service[/enable: modifica da falso a vero non riuscita: impossibile abilitare getty@ttyUSB0.service:

Il servizio funziona correttamente e posso assicurarmi che sia avviato all'avvio del sistema aggiungendo un collegamento simbolico a getty.target.wants:

ln -s /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttyUSB0.service

Di origine, potrei andare avanti e rimuovere "enable => true" dalla definizione del servizio e includere un collegamento simbolico manualmente nella configurazione del pupazzo, ma il pupazzo non dovrebbe occuparsene? Sto facendo qualcosa di terribilmente sbagliato?

Risposte:


6

Il provider systemd in Puppet oggi utilizza solo due comandi per lo enablestato del servizio :

  • systemctl is-enabled <unit>, verifica del codice di ritorno per lo stato di abilitazione corrente
  • systemctl enable/disable <unit> per cambiarlo

Il comando enable genera un errore quando si abilita un'istanza del servizio getty @ che non esiste già:

$ sudo systemctl enable getty@ttyUSB0.service
Failed to issue method call: No such file or directory

Ciò causa quindi l'errore mostrato in Puppet (sebbene stderr non sembri essere visualizzato).

Mi sembra un gap nel systemd che non sei in grado di abilitare nuove istanze di un modello. C'è già BZ # 752774 in Fedora , ma i commenti suggeriscono che potrebbe non essere aggiunto presto.

Potrebbe essere meglio presentare una richiesta di funzionalità contro Puppet per aggiungere supporto specificamente per abilitare nuove istanze. Nella tua richiesta di funzionalità ti suggerirei un collegamento alla spiegazione di Lennart delle istanze di unità per lo sfondo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.