{{ cat }}'s docs

1.3.12: playbook with_items and register


0. 背景

register可以帮助我们获取task执行的结果,然后在使用,但是如果我们是一个循环的task,如何循环的取出所有的result呢?
在循环中使用register官方文档

1. 解决方案

- name: get tomcat version
  shell: "{{ item }}/bin/version.sh"
  with_items:
     - "{{ CATALINA_HOME_01 }}"
     - "{{ CATALINA_HOME_02 }}"
     - "{{ CATALINA_HOME_03 }}"
     - "{{ CATALINA_HOME_04 }}"
     - "{{ CATALINA_HOME_05 }}"
  register: tomcat_version

- name: tomcat version
  debug:
    msg: "{{ item.stdout }}"
  with_items: "{{ tomcat_version.results }}"

2. 延伸思考

如果后面的with_items循环中需要使用when判断呢?

- name: tomcat version
  command: "echo {{ item.item }}"
  when: item.stderr != ""
  with_items: "{{ tomcat_version.results }}"