Подтвердить что ты не робот

Ansible - проверить, существует ли файл на * локальной машине *

У меня есть ситуация, когда мне нужно проверить статус файла на локальном компьютере (тот, где я буду называть ansible-playbook ...).

Если файл, созданный пользователем, существует, его необходимо скопировать на удаленный хост (ы). Если он не существует, то ни один из удаленных хостов не нуждается в нем.

Я знаю, что делал такие вещи, как:

- name: Check for ~/.blah/config
  stat: path=/home/ubuntu/.blah/config
  register: stat_blah_config

- name: Do something with blah config
  shell: ~/do_something_with_config.sh
  when: stat_aws_config.stat.exists == true

Но это будет работать, только если файл существует удаленно. Есть ли способ условно выполнить задачу (например, копию) только в том случае, если файл существует локально (есть ли stat в первой задаче выполнять локально, а не удаленно), и не работает, если это не так? Я не уверен, что у этого метода есть такая функциональность, но это было бы полезно.

4b9b3361

Ответ 1

Передача задач локальному хосту через оператор local_action должна делать то, что вы хотите:

- name: Check for ~/.blah/config
  local_action: stat path=/home/ubuntu/.blah/config
  register: stat_blah_config