Я пытаюсь выполнить 2 задачи с использованием одних и тех же переменных, но со второй задачей, зависящей от результата первой задачи. Если я использую регистр, чтобы отметить результат первой задачи, я в конечном итоге создаю список, который вторая задача не может эффективно использовать, поскольку она создает связь цикла многие ко многим, когда я просто хочу, чтобы элемент сначала запускался в обеих задачах, тогда второй элемент для выполнения в обеих задачах, затем третий и т. д.
Например, найдите, существует ли каталог, и если он существует, измените его разрешения. У меня есть список каталогов, которые нужно просмотреть, чтобы проверить, существуют ли они, а затем изменить эти разрешения. Как мне сделать цикл в Ansible, чтобы он проходил только по каждому из них в списке в каждой задаче? Ниже моя последняя попытка.
- hosts: localhost
vars:
folders_to_change:
- /Users/Documents/test_folder1
- /Users/Documents/test_folder2
tasks:
- name: Ansible check file exists example.
stat:
path: "{{ item }}"
register: file_details
loop:
"{{ folders_to_change }}"
- name: Change permissions of folder
file:
path: "{{ folders_to_change[{{ item }}] }}"
owner: root
group: root
mode: 777
state: directory
when: file_details.stat.exists.isdir["{{ item }}"]
loop:
"{{ range(0 - folders_to_change|len }}"
file
задачи, которую вы придумали. ваша цель - определить, существуют ли 2 папки вfolders_to_change
, и если да, запустить для них задачуfile
? - person ilias-sp   schedule 16.12.2020