【问题标题】:'dict object' has no attribute 'stdout' in Ansible Playbook“dict object”在 Ansible Playbook 中没有属性“stdout”
【发布时间】:2018-12-24 15:00:06
【问题描述】:

我的剧本:

- name: JBoss KeyStore and Truststore passwords will be stored in the          password vault
    #shell: less "{{ vault }}"
     shell: cat "{{ vault }}"
    register: vault_contents
    tags:
      - BW.6.1.1.10
    with_items:
      - "{{ vault }}"
  - debug:
       msg: "JBoss config filedoes not contains the word vault"
    when: vault_contents.stdout.find('$VAULT') == -1

我正在尝试使用Jinga2模板通过ansible读取多个文件并将输出解析为stdout并搜索关键字并报告它。

失败并出现以下错误:

TASK [testing_roles : debug]   **************************************************************************.   *****************************************************************
fatal: [d84e4fe137f4]: FAILED! => {"failed": true, "msg": "The conditional check 'vault_contents.stdout.find('$VAULT') == -1' failed. 
The error was: error while evaluating conditional (vault_contents.stdout.find('$VAULT') == -1): 'dict object' has no attribute 'stdout'\n\nThe error appears to have been in '/Ansible/Ansible/Relearn/testing_roles/roles/testing_roles/tasks/main.yml': line 49, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n      - \"{{ vault }}\"\n  - debug:\n    ^ here\n"}
to retry, use: --limit @/Ansible/Ansible/Relearn/testing_roles/playbook.retry

当我将它附加到单个文件条目时,它按预期工作,但当它更改为一系列文件时,它会失败。

这是在 Ansible 中扫描多个文件的正确方法还是应该使用其他模块或方法。

非常感谢任何帮助。

在 vars 文件中包含以下内容:

vault:
  - /jboss-as-7.1.1.Final/standalone/configuration/standalone-full-ha.xml

谢谢

【问题讨论】:

    标签: ansible ansible-2.x ansible-facts ansible-template


    【解决方案1】:

    对- debug: var=vault_contents 的检查将告诉您,当与with_items: 等循环结构一起使用时,寄存器变量有一个名为results 的list,其中包含循环每次迭代的结果。这也记录在the fine manual 中。

    那么,你想要的很可能:

    - debug:
        msg: "JBoss config {{ item.item }} does not contain the word vault"
      when: item.stdout.find('$VAULT') == -1
      with_items: '{{ vault_contents.results }}'
    

    【讨论】:

    • 谢谢你,是的,我完全错过了阅读文档
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 2022-07-19
    相关资源
    最近更新 更多