在其他角色中使用注册变量的回显输出

时间:2019-04-20 11:47:10

标签: ansible

大家好,我有问题。

我目前遇到的问题是,无论文件名是否为空,复制文件的角色都会跳过所有文件。

在Role1中,我想为每个文件保存cat的输出。在Role2中的when条件语句中,如果注册的输出为==“”,我希望任务跳过。

角色1:

---
- name: copy files
  shell: "cat path{{ item }}files"
  register: checkempty
  loop:
    - test1
    - test2
    - test3
    - test4

角色2:

---
- name: Copy Files
  copy:
    src: "{{ var1 }}{{ var2 }}{{ var3 }}{{ var4 }}{{ item }}/"
    dest: "{{ copy_dest_sys }}" #destination path
  loop: "{{ lookup('file', 'pathtofile/file').split('\n')}}"
  when: hostvars['localhost'].checkempty.results == ""


剧本:

- name: check emptiness
  hosts: localhost
  become: yes
  vars_files:
    - ../variables/varsfile
  roles:
    - ../variables/role1

- name: Copy Files to prod/stag
  hosts: "{{hosts_exec}}"
  become: yes
  vars_files:
   - ../vars/recommendation-delta.yml
  roles:
   - ../roles/role2

如何使用with_items设置注册变量并将其输出与“”(无)进行比较? 有人可以帮我解决这个问题吗?

0 个答案:

没有答案