ansible:如何显示使用with_items的任务的输出?

时间:2019-02-21 19:53:16

标签: ansible sqlplus

这里有新手 希望有一个解决我问题的简单方法

我正在尝试在一个节点上跨多个Oracle数据库运行SQL。我从ps -ef生成数据库列表,并使用with_items传递dbname值。

我的问题是如何显示每个运行select语句的数据库的输出?

 tasks:

 

    - name: Exa check | find db instances

      become: yes

      become_user: oracle

      shell: |

         ps -ef|grep pmon|grep -v grep|grep -v ASM|awk '{ print $8 }'|cut -d '_' -f3

      register: instance_list_output

      changed_when: false

      run_once: true

 

    - shell: |

        export ORAENV_ASK=NO; export ORACLE_SID={{ item }}; export ORACLE_HOME=/u01/app/oracle/database/12.1.0.2/dbhome_1; source /usr/local/bin/oraenv; $ORACLE_HOME/bin/sqlplus -s \"/ as sysdba\"<< EOSQL

        select * from v\$instance;

         EOSQL

      with_items:

      - "{{ instance_list_output.stdout_lines }}"

      register: sqloutput

      run_once: true

1 个答案:

答案 0 :(得分:0)

下面的循环可能有用。

- debug:
    msg: "{{ item.stdout }}"
  loop: "{{ sqloutput.results }}"

如果不看一下变量的内容并决定如何使用它。

- debug: var=sqloutput