🚀

Ansible win_nssmモジュールでWindowsサービス登録

2023/09/05に公開

概要

win_serviceモジュールでサービス登録を行えないアプリを
win_nssmモジュールを利用してサービス登録を行う。

ansibleドキュメント-win_nssm_module

要件

ドキュメントに、win_nssmを利用するにはwin_chocolateynssmをインストールする必要があると書いてあるので、インストールを行う。

nssm のインストール

- name: Install nssm
  win_chocolatey:
    name: nssm
    state: present
  ignore_errors: yes

- name: reboot_server
  ansible.windows.win_reboot:

対象PCの.NET Framework バージョンによっては、chocolateyに必要な.NET Frameworkのインストールが行われ再起動が必要とメッセージが表示されるのでignore_errors: yesでエラーになっても再起動を行うようにしている。

.NET Frameworkをインストールするタスクを作っておいた方が良いのかも。

win_nssmを利用したサービス登録

- name: Service registration.
  community.windows.win_nssm:
    name : "{{ service.name }}"
    application: "{{ service.path }}"
    arguments:
      - -config.file={{ service.yml }}
    display_name: "{{ service.display_name }}"
    description: "{{ service.description }}"
    start_mode: auto
    state: started

パラメータ

パラメータ 説明
name 登録するサービス名
application 登録するアプリのパス
arguments 起動時にアプリに渡す起動引数
display_name サービス表示名
description サービスの説明
start_mode 起動モード
state サービスの状態

Discussion