2017-04-25 18 views
0

私は、JavaのプロセスIDとそのPID可能性:別のプレイブックから電話をかけるには?

[[email protected] thebigone]# cat check_java_pid.yaml 
--- 
- hosts: all 
    gather_facts: no 

    tasks: 
    - name: Check PID of existing Java process 
     shell: "ps -ef | grep [j]ava" 
     register: java_status 

    - debug: var=java_status.stdout 

そして、私はそれがうまく働いてansible-playbook check_java_pid.yamlでこれを呼び出していますが、他の情報を印刷するための簡単な脚本を書かれています。

ここでは、上記のプレイブックを別のホストから呼び出すことを試みていますが、特定のホストのみをプレイしています。だから私は

[[email protected] thebigone]# cat instance_restart.yaml 
--- 
- hosts: instance_1 
    gather_facts: no 

    tasks: 
    - include: check_java_pid.yaml 

以下のように第二脚本を書かれている。しかしansible-playbook instance_restart.yamlをしながら、私はエラーの下に

ERROR! no action detected in task. This often indicates a misspelled 
    module name, or incorrect module path. 

    The error appears to have been in 
    '/home/root/ansible/thebigone/check_java_pid.yaml': line 2, column 3, but 
    may be elsewhere in the file depending on the exact syntax problem. 

    The offending line appears to be: 

    --- 
    - hosts: all 
    ^here 


     The error appears to have been in 
     '/home/root/ansible/thebigone/check_java_pid.yaml': line 2, column 3, 
     but may be elsewhere in the file depending on the exact syntax problem. 

    The offending line appears to be: 

     --- 
     - hosts: all 
     ^here 

その言って構文エラーを取得しますが、本当に私の知る限り、私は脚本のcheck_java_pidを実行しているように、1つがイマイチいます。何の問題もなくyaml。

この問題の理解にご協力をお願いします。

答えて

4

includeon the task level Anabilitiesは、完全なプレイブックではなく、タスクのみのファイルを想定しています。しかし、あなたは議論として完全なプレイブックを提供する。

on a play levelとすることもできますが、あなたが望むものを達成することはできません。

hosts: allのプレイは、(コマンド呼び出しやインベントリで制限しない限り)常にすべてのターゲットに対して実行されます。

また、他のプレイブックの値にjava_statusの値にアクセスすることには問題があります(これがあなたの目標だった場合)。


は、あなたは、たとえば、両方のプレーからそれらをタスク(複数可)を抽出して含めることができます例えば、あなたの構造を再考する必要があります。

my_tasks.yml

- name: Check PID of existing Java process 
    shell: "ps -ef | grep [j]ava" 
    register: java_status 

    - debug: var=java_status.stdout 

check_java_pid.yml

--- 
- hosts: all 
    gather_facts: no 

    tasks: 
    - include my_tasks.yml 

instance_restart.yml

--- 
- hosts: instance_1 
    gather_facts: no 

    tasks: 
    - include: my_tasks.yml 
+0

もう一度おねがいします。その意味を今作っている。私は一度試してみてください。 –

+0

働いて、今私は理解して、もう一度ありがとう。 –

関連する問題