2017-03-27 15 views
0

私はヘルスチェックのために安全なスクリプトを設定しています。Mongo DB CLIでAnsibleを使用してコマンドを送信する

mongo db admin cliにログインしてからrs.status()コマンドを実行します。

--- 
- name: Perform Health Checks. 
    hosts: mongodb 
    tasks: 
    - name: Check MongoDB nodes. 
     shell: mongo admin -u root -p root ; rs.status() 
     register: output 

    - debug: msg={{ output.stdout_lines }} 

コマンドrs.status()はMongoDBの管理コンソールでイム一度に実行することができます。

しかし、上記のプレイブックをshellモジュールを使用して実行すると、私にエラーが発生します。

TASK [Check MongoDB nodes.] ************************************************** 
fatal: [172.29.219.107]: FAILED! => {"changed": true, "cmd": "mongo admin -u root -p root ; rs.status()", "delta": "0:00:00.002825", "end": "2017-03-27 13:26:45.211397", "failed": true, "rc": 1, "start": "2017-03-27 13:26:45.208572", "stderr": "/bin/sh: -c: line 1: syntax error: unexpected end of file", "stdout": "", "stdout_lines": [], "warnings": []} 
fatal: [172.29.219.106]: FAILED! => {"changed": true, "cmd": "mongo admin -u root -p root ; rs.status()", "delta": "0:00:00.002906", "end": "2017-03-27 13:26:47.486562", "failed": true, "rc": 1, "start": "2017-03-27 13:26:47.483656", "stderr": "/bin/sh: -c: line 1: syntax error: unexpected end of file", "stdout": "", "stdout_lines": [], "warnings": []} 

アイブ氏は、MongoDBのコンソールにログインしたら、私はrs.status()コマンドを送信することができAnsibleを使用して方法はありますか?

答えて

0

あなたはrs.status()--evalコマンドライン引数を使用して実行できます。必要に応じて

- name: Check MongoDB nodes. 
    shell: mongo admin --quiet --eval 'printjson(rs.status())' 
    register: output 

-u user-p pwdコマンドライン引数は、コマンドラインに追加することができます。

関連する問題