读取使用ansible的tempfile模块创建的目录的名称

时间:2018-04-16 19:34:03

标签: ansible

我写了一个简单的ansible脚本来创建一个临时目录,并希望将该目录的名称保存到变量中。我的.yml文件是:

- hosts: " {{ lookup('env', 'HOSTNAME') }} "
  tasks:
  - name : Create staging directory
    tempfile:
      state: directory
      suffix: staging
      path: "{{ lookup('env', 'HOME') }}"
    become: true
    register: output

  - name: print stdout
    debug: msg="{{ output }}"

运行上述内容的输出会打印dict

$ ansible-playbook -i hosts tempfile.yml  

PLAY [localhost] ******************************************************************************************

TASK [Gathering Facts] ************************************************************************************
ok: [localhost]

TASK [Create staging directory] ***************************************************************************
changed: [localhost]

TASK [print stdout] ***************************************************************************************
ok: [localhost] => {
    "msg": {
        "changed": true, 
        "gid": 0, 
        "group": "root", 
        "mode": "0700", 
        "owner": "root", 
        "path": "/home/xxxx/ansible.Fb7rbKstaging", 
        "size": 4096, 
        "state": "directory", 
        "uid": 0
    }
}

PLAY RECAP ************************************************************************************************
localhost                  : ok=3    changed=1    unreachable=0    failed=0   

如何访问some_dict['localhost']['msg']['path']?我查找了hostvars变量并看到了我的临时目录,但无法弄清楚如何访问它。

1 个答案:

答案 0 :(得分:4)

查看文档中的Registered variables部分以获取更多详细信息,您可以使用以下内容binary访问路径:

register: output