Как проверить наличие файла в пути с расширением Ansible? - PullRequest
2 голосов
/ 24 января 2020

Я просто хочу узнать, как проверить, существует ли файл или нет какого-либо каталога с помощью кода ansible. Я уже пытался с модулем статистики с путем "* .test" уже, но он не работает.

Ниже приведены мои попытки:

- name: Check license file exist or not
  stat:
    path: /var/www/vb_backup/vb/*.test
  register: license

, потому что путь в модуле статистики требует указать c файл или каталог. Я хочу, чтобы все помогли мне в этом.

Заранее спасибо.

Ansible версия: ansible 2.8.7

Ответы [ 4 ]

2 голосов
/ 24 января 2020

Использовать модуль найти . Например

  - find:
      paths: /var/www/vb_backup/vb
      patterns: "*.test"
    register: result

  - debug:
      msg: "No files found."
    when: result.matched == 0

  - debug:
      msg: "File found: {{ item.path }}"
    loop: "{{ result.files }}"
0 голосов
/ 24 января 2020

вы можете использовать модуль поиска, как этот

find:
  paths: /var/www/vb_backup/vb/
  patterns: *.test

, затем вы можете вызывать соответствующие файлы

0 голосов
/ 24 января 2020

Это должно сделать работу.

path: "{{/var/www/vb_backup/vb/*.test}}"
0 голосов
/ 24 января 2020

Вы можете использовать модуль поиска и модуль подтверждения.

- name: Find files
  find:
    paths: /var/www/vb_backup/vb
    patterns: *.test'
  register: output
- name: message
  assert:
    that:
    - output.matched
    fail_msg: "File not found"
    success_msg: "File found"

...