У меня есть роль, которая должна создать список каталогов. Какие каталоги окажутся в списке, зависит от нескольких условий, которые оцениваются во время выполнения.
Когда я использую модуль file
, как показано на рисунке, это очень медленно. Создание и даже проверка существования каждого каталога занимает около полсекунды, что легко подводит итог минутам, с которыми я сталкиваюсь.
Конвейер включен.
- name: Create directories
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ dirs }}"
when:
- dirs is defined
Подобный вопрос был задан здесь , однако использование synchronize
или unarchive
, как предлагается там, кажется очень неудобным для каталогов, которые не известны заранее, так как структура каталогов, которая должна быть синхронизирована, сначала где-то должен быть создан на локальном хосте.
Есть ли другие варианты решения этой проблемы, я мог бы пропустить?
EDIT:
Я знаю, что shell
и command
и mkdir -p
оказываются идемпотентными. Тем не менее, я бы предпочел способ, где ansible управляет состоянием каталогов.