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=yes
systemdに関しては戻り値が大量にあります。今回の掲載は見送りますが、今後調査することがあれば追記したいと思います。
お疲れ様でした。