2016-05-27 4 views
5

私は、変数を好きな方法で登録する際に問題があります。以下の実装を使用して、私はいつも変数の.stdoutを呼び出さなければなりません - 私はもっとうまくいく方法がありますか?可能性のある変数プロパティを登録する

私のプレイブック: .stdoutの不要な使用に注意してください - 私は、プロパティを呼び出さずに変数を直接使用できるようにしたいと思います...?

--- 
- name: prepare for new deployment 
    hosts: all 
    user: ser85 

    tasks: 

    - name: init deploy dir 
    shell: echo ansible-deploy-$(date +%Y%m%d-%H%M%S-%N) 
    # http://docs.ansible.com/ansible/playbooks_variables.html 
    register: deploy_dir 

    - debug: var=deploy_dir 

    - debug: var=deploy_dir.stdout 

    - name: init scripts dir 
    shell: echo {{ deploy_dir.stdout }}/scripts 
    register: scripts_dir 

    - debug: var=scripts_dir.stdout 

私は脚本を実行し、出力:

TASK [init deploy dir] ********************************************************* 
changed: [123.123.123.123] 

TASK [debug] ******************************************************************* 
ok: [123.123.123.123] => { 
    "deploy_dir": { 
     "changed": true, 
     "cmd": "echo ansible-deploy-$(date +%Y%m%d-%H%M%S-%N)", 
     "delta": "0:00:00.002898", 
     "end": "2016-05-27 10:53:38.122217", 
     "rc": 0, 
     "start": "2016-05-27 10:53:38.119319", 
     "stderr": "", 
     "stdout": "ansible-deploy-20160527-105338-121888719", 
     "stdout_lines": [ 
      "ansible-deploy-20160527-105338-121888719" 
     ], 
     "warnings": [] 
    } 
} 

TASK [debug] ******************************************************************* 
ok: [123.123.123.123] => { 
    "deploy_dir.stdout": "ansible-deploy-20160527-105338-121888719" 
} 

TASK [init scripts dir] ******************************************************** 
changed: [123.123.123.123] 

TASK [debug] ******************************************************************* 
ok: [123.123.123.123] => { 
    "scripts_dir.stdout": "ansible-deploy-20160527-105338-121888719/scripts" 
} 

すべてのヘルプや感謝の洞察力 - あなたに感謝:)

答えて

5

私は右のそれを理解した場合は、その変数にdeploy_dir.stdoutを割り当てますstdoutキーなしで使用できます。 set_factモジュールで行うことができます:

tasks: 
    - name: init deploy dir 
    shell: echo ansible-deploy-$(date +%Y%m%d-%H%M%S-%N) 
    # http://docs.ansible.com/ansible/playbooks_variables.html 
    register: deploy_dir 

    - set_fact: my_deploy_dir="{{ deploy_dir.stdout }}" 

    - debug: var=my_deploy_dir 
+0

ありがとう、それは動作します!私は実際に{{my_deploy_dir}}を使用した変数名{{deploy.dir}}を問題なく再利用しました。私は、Anipalが同じ場所を使用して、ユーザー定義の事実と変数を格納するかどうか疑問に思います...無関係に、動作します - ありがとうございます:) –

関連する問題