这里有新手 希望有一个解决我问题的简单方法
我正在尝试在一个节点上跨多个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
答案 0 :(得分:0)
下面的循环可能有用。
- debug:
msg: "{{ item.stdout }}"
loop: "{{ sqloutput.results }}"
如果不看一下变量的内容并决定如何使用它。
- debug: var=sqloutput