AnsibleのModule:systemd
お疲れ様です。伊藤です。
続いてmoduleのsystemdになります。説明文は以下です。
リモートホスト上のsystemdサービスを制御します
シンプルですね。RHEL7から導入されているsystemd関連のコマンドです。基本的にはサービスの起動停止設定を行うコマンドです。引数は下記になります。
| パラメータ | 必須 | デフォルト | 選択肢 | 備考 |
|---|---|---|---|---|
| daemon_reload | no | yes or no | 他の操作を行う前にdaemon-reloadを実行して、systemdが変更を読み込んでいることを確認してください。aliases: daemon-reload | |
| enabled | no | yes or no | 起動時にサービスを開始するかどうか。 stateとenabledの少なくとも1つが必要です | |
| masked | no | yes or no | ユニットをマスクする必要があるかどうかにかかわらず、マスクされたユニットは開始できません | |
| name | no | サービスの名前。 chroot環境で使用する場合、常に完全な名前(crond.service)を指定する必要があります。aliases: unit, service | ||
| no_block | no | yes or no | 要求された操作が完了するまで同期的に待機しないでください。 エンキューされたジョブは、完了時にAnsibleブロッキングなしで続行されます | |
| state | no | started or stopped or restarted or reloaded | started/stopped は、必要な場合を除いてコマンドを実行しない冪等のアクションです。 restarted は常にサービスをバウンスします。 reloaded は常にリロードされます | |
| user | no | yes or no | systemctlを実行して、システムのサービスマネージャではなく、呼び出し元のユーザのサービスマネージャと通信します |
こちらは例文です。
# サービスが実行中であることを確認する
- name: Make sure a service is running
systemd: state=started name=httpd
# 実行している場合、debian上のサービスcronを停止する
- name: stop service cron on debian, if running
systemd: name=cron state=stopped
# すべての場合に、デーモンリロードを発行して設定の変更を取り出す
- name: restart service cron on centos, in all cases, also issue daemon-reload to pick up config changes
systemd:
state: restarted
daemon_reload: yes
name: crond
# リロードサービスhttpd、すべての場合
- name: reload service httpd, in all cases
systemd:
name: httpd
state: reloaded
# サービスhttpdを有効にし、マスクされていないことを確認してください
- name: enable service httpd and ensure it is not masked
systemd:
name: httpd
enabled: yes
masked: no
# dnf-automaticのタイマーを有効にする
- name: enable a timer for dnf-automatic
systemd:
name: dnf-automatic.timer
state: started
enabled: True
# systemdにconfigsを読み直すように強制する
- name: just force systemd to reread configs (2.4 and above)
systemd: daemon_reload=yessystemdに関しては戻り値が大量にあります。今回の掲載は見送りますが、今後調査することがあれば追記したいと思います。
お疲れ様でした。