В моей нынешней PlayBook, у меня есть что-то вроде следующего:анзибль - Как использовать регистр имя из with_items
- name: Copy cov-analysis-linux64-8.0.0.tgz
copy: src=/home/devops/chroot/cov-analysis-linux64-8.0.0.tgz dest=/var/tmp/cov-analysis.tgz owner=devops
register: coverity
- name: Copy fortidev-2.02.chroot.tar.bz2
copy: src=/home/devops/chroot/fortidev-2.02.chroot.tar.bz2
dest=/var/tmp/fortidev2.chroot.tar.bz2 owner=devops
register: fortidev2
Список становится все длиннее и длиннее и читаемость кода, я хочу использовать with_items сделать Это. Я обновил его на что-то вроде:
- name: copy chroot tarball to the servers
copy: src={{ item.src }} dest={{ item.dest }} owner=devops
register: "{{ item.register }}"
with_items:
- { src: /home/devops/chroot/cov-analysis-linux64-8.0.0.tgz,
dest: /var/tmp/cov-analysis.tgz,
register: coverity
}
- { src: /home/devops/chroot/fortidev-2.02.chroot.tar.bz2,
dest: /var/tmp/fortidev2.chroot.tar.bz2,
register: fortidev2
}
- { src: /home/devops/chroot/fmdev-6.0.tar.xz,
dest: /var/tmp/fmdev6.tar.xz,
register: fmdev6
}
Проблема теперь, когда я хочу обратиться к одному из регистров в последующих задач, он не может найти переменную. Код для обозначения это:
- name: umount fortidev2 /proc|/dev|/tmp|/cov-analysis
command: umount {{ item }}
become: yes
when: fortidev2.changed
with_items:
- /home/devops/fortidev2/proc
- /home/devops/fortidev2/dev
- /home/devops/fortidev2/tmp
ignore_errors: yes
ошибка { «не»: правда, «сообщение»:. «Условная проверка„fortidev2.changed“не удалась ошибка: ошибка при оценке условных (fortidev2 .changed): 'fortidev2' не определен \ n \ nПроизошла ошибка в '/var/lib/jenkins/jobs/Devops/jobs/update_chroot/workspace/roles/chroot/tasks/main.yml': строка 70 , столбец 3, но может \ n быть в другом месте в файле в зависимости от точной проблемы синтаксиса. \ n \ nДля удаления папки \ n- name: \ n \ n # unmount/proc и/dev перед \ umount fortidev2/proc |/dev |/tmp |/cov-analysis \ n^here \ n "}