2016-07-07 5 views
3

私はすでにnginxをインストールしているVMに対してテストすることができます。私は以下のコマンドを使用してサービスを停止しようとしましたが、結果のステータスはプロセスが停止したことを表示します。しかし、ターゲットサーバーでは、プロセスがまだ実行中であることがわかります(数日間実行されています)。私は、適切なサーバーを持っています。 正しいサーバーを確認しています。コマンドが、サービスが停止しているように見えない場合でも停止した状態を表示する理由についての考え。プレイブックで可用性を使用してサービスを停止する

ansible testserver -vvv -m service -a "name=nginx state=stopped" 
Using /home/test/devops/ansible.cfg as config file 
<ec2-xx.xxx.xxx.xxx.compute-1.amazonaws.com> ESTABLISH SSH CONNECTION FOR USER: test 
<ec2-xx.xxx.xxx.xxx.compute-1.amazonaws.com> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o Port=1234 -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=test -o ConnectTimeout=10 -o ControlPath=/home/test/.ansible/cp/ansible-ssh-%h-%p-%r ec2-xx.xxx.xxx.xxx.compute-1.amazonaws.com '/bin/sh -c '"'"'(umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1467905869.39-108785461246651 `" && echo ansible-tmp-1467905869.39-108785461246651="` echo $HOME/.ansible/tmp/ansible-tmp-1467905869.39-108785461246651 `") && sleep 0'"'"'' 
<ec2-xx.xxx.xxx.xxx.compute-1.amazonaws.com> PUT /tmp/tmpqpCm5g TO /home/ali/.ansible/tmp/ansible-tmp-1467905869.39-108785461246651/service 
<ec2-xx.xxx.xxx.xxx.compute-1.amazonaws.com> SSH: EXEC sftp -b - -C -o ControlMaster=auto -o ControlPersist=60s -o Port=1234 -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ali -o ConnectTimeout=10 -o ControlPath=/home/test/.ansible/cp/ansible-ssh-%h-%p-%r '[ec2-52-87-166-241.compute-1.amazonaws.com]' 
<ec2-xx.xxx.xxx.xxx.compute-1.amazonaws.com> ESTABLISH SSH CONNECTION FOR USER: test 
<ec2-xx.xxx.xxx.xxx.compute-1.amazonaws.com> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o Port=1234 -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ali -o ConnectTimeout=10 -o ControlPath=/home/ali/.ansible/cp/ansible-ssh-%h-%p-%r -tt ec2-xx.xxx.xxx.xxx.compute-1.amazonaws.com '/bin/sh -c '"'"'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 /usr/bin/python /home/test/.ansible/tmp/ansible-tmp-1467905869.39-108785461246651/service; rm -rf "/home/test/.ansible/tmp/ansible-tmp-1467905869.39-108785461246651/" > /dev/null 2>&1 && sleep 0'"'"'' 
testserver | SUCCESS => { 
    "changed": true, 
    "invocation": { 
     "module_args": { 
      "arguments": "", 
      "enabled": null, 
      "name": "nginx", 
      "pattern": null, 
      "runlevel": "default", 
      "sleep": null, 
      "state": "stopped" 
     }, 
     "module_name": "service" 
    }, 
    "name": "nginx", 
    "state": "stopped" 
} 
+2

サービスを停止するには? 'systemctl'や' service'と似ています...可能な 'service'モジュールはinitコマンドのラッパです。したがって、デバッグする最も簡単な方法は、Ansibleなしでコマンドをチェックすることです。別の可能性は、プロセスがサービスマネージャーなしで開始されたことです。 –

+0

サービスの開始中に同様のことが起こります。私はこのモジュールにエラーがあると思われるので、@knowhyアドバイスは試してみる価値があります –

+0

私はsudoユーザーを使用すると、問題なくサーバー上でサービスを実行できます。 –

答えて

1

- name: stop nginx service 
    service: name=nginx state=stopped 

または

アドホック-コマンドは:あなたが対応するサービスコマンドの戻りステータスを確認しまし

ansible testserver -m service -a "name=nginx state=stopped" 
+3

彼はすでにこれを行っています。 –

+0

共有のおかげで@MattSchuchardによると、私はadhocコマンドの成功ステータスを取得しますが、サービスはリモートマシンで停止しません。テストサーバー| SUCCESS => { "changed":true、 "name": "nginx"、 "状態": "停止" } –

+0

サービスを再開するためにsudoを使用する必要があるかどうかは疑問ですリモートマシン上で実行します。私はbecome/become_userを使用しようとしましたが、結果は同じです –

関連する問題