web-dev-qa-db-ja.com

Ansibleを使用してsystemdサービスをインストールするにはどうすればよいですか?

Jinja2テンプレートからsystemdサービスをインストールしたい。どうすればいいですか?

copyモジュールを使用してファイルを/lib/systemd/systemにコピーし、systemdモジュールを使用して有効にする必要がありますか?

もっと良い方法はありますか?

19
ATOzTOA

templateモジュールを使用して、.serviceファイルを/etc/systemd/systemにインストールします。 このデジタルオーシャンブログの投稿/lib/systemd/systemによると、OSにバンドルされているパッケージ用に予約する必要があり、サードパーティサービスは/etc/systemd/systemで定義する必要があります。

Ansibleのsystemdモジュールでは、daemon_reload=yesでサービスを開始します。

Ansible 2.2の前:後でsystemctl daemon-reloadを実行し(適切な場合はこれにansibleハンドラを使用できます)、systemdをピックアップして新しいファイル。

- name: install myservice systemd unit file
  template: src=myservice.j2 dest=/etc/systemd/system/myservice.service

- name: start myservice
  systemd: state=started name=myservice daemon_reload=yes


# For ansilble < 2.2 only
#- name: reload systemd unit configuration
#  command: systemctl daemon-reload
34
Peter Lyons