パペットでsystemdのインスタンス化されたサービスを有効にする方法は?


9

次のパペットサービスがあります。

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

この構成をクライアントに適用しようとすると、次のエラーがスローされます。

エラー:/Stage[main]//Node[puppetclient]/Service[getty@ttyUSB0.service]/enable:falseからtrueに変更できませんでした:getty@ttyUSB0.serviceを有効にできませんでした:

サービスは正常に実行されており、getty.target.wantsにシンボリックリンクを追加することで、システムの起動時にサービスが開始されていることを確認できます。

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

ソースについては、先に進んでサービス定義から「enable => true」を削除し、手動でシンボリックリンクをパペット構成に含めることができますが、パペットがこれを処理するべきではありませんか?私はひどく悪いことをしていますか?

回答:


6

現在、Puppetのsystemdプロバイダーは、サービスenable状態に対して2つのコマンドのみを使用しています。

  • systemctl is-enabled <unit>、現在の有効状態の戻りコードを確認する
  • systemctl enable/disable <unit> それを変える

まだ存在しないgetty @サービスのインスタンスを有効にすると、enableコマンドはエラーをスローします。

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

これにより、Puppetに表示されるエラーが発生します(ただし、stderrは表示されないようです)。

テンプレートの新しいインスタンスを有効にできないのはsystemdのギャップのようです。FedoraにはすでにBZ#752774がありますが、コメントはすぐには追加されないかもしれないことを示唆しています。

特に新しいインスタンスを有効にするためのサポートを追加するには、Puppetに対して機能リクエストを提出する方がよい場合があります。機能のリクエストで、背景のユニットインスタンスに関するLennartの説明にリンクすることをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.