Ansibleでサービスが存在するかどうかを確認します
Check If Service Exists With Ansible
解決:
を参照してくださいservice_factsモジュール、Ansible2.5の新機能。
-名前:サービスファクトを入力しますservice_facts:-デバッグ:メッセージ:Dockerがインストールされました!いつ:「サービスの「docker」」
もちろん、ラッパースクリプトが/etc/init.dに存在するかどうかを確認することもできます。だからこれは私が最終的に得たものです:
-名前:サービスが存在するかどうかを確認しますstat:path = / etc / init.d / {{service_name}} register:service_status --name:サービスを停止しますservice:name = {{service_name}} state = stop when:service_status.stat.exists登録:service_stopped
'service'モジュールが 'unrecognizedservice'エラーを処理できると便利です。
これは私のアプローチであり、initスクリプトをチェックする代わりにserviceコマンド:
-名前:Apacheシェルを確認します: 'service apache2 status' register:_svc_apache failed_when:> _svc_apache.rc!= 0 and( 'unrecognized service' not in _svc_apache.stderr)-name:disable apache service:name = apache2 state = stopped enabled = no when: '_ svc_apache.rc == 0' - 「サービスステータス」の終了コードを確認し、出力に「認識されないサービス」が含まれている場合は終了コード0を受け入れます。
- 終了コードが0の場合、そのサービスはインストールされます(停止または実行中)