Использование Ansible для извлечения или копирования файлов с удаленного сервера (с помощью подстановок )на текущий сервер приводит к ошибке «файл не найден :/tmp/data/ *.zip»

Проблема может заключаться в файле sudoers в каталоге /etc, который содержит системные и пользовательские файлы конфигурации.

1 )переключите пользователя на root, выполнив " su-"

2 )один раз ваш корневой тип " visudo "

3 )найдите заголовок ' Спецификация привилегий пользователя '

4 )должно быть что-то, что говорит «root ALL= (ALL :ALL )ALL ' это конфигурация sudo для пользователя root. если вы этого не видите, то это объясняет проблему

5 )в разделе «Спецификация привилегий пользователя» тип ' root ALL= (ALL :ALL )ALL "ПОМНИТЕ, ЧТО ЕСТЬ 4 ПРОБЕЛА МЕЖДУ СЛОВАМИ «корень» и первым «ВСЕ»

.
0
10.04.2021, 00:02
1 ответ

Fetch не поддерживает каталоги и подстановочные знаки. В документации довольно ясно, что строка будет интерпретироваться как имя файла и только имя файла. Возможно, вы сможете заставить его работать в сочетании со списком файлов, предоставленным отдельным процессом поиска.

Может быть, что-то вроде:

- hosts: server-A
  become: yes
  tasks:
  - name: find the zip files
    find:
      paths: "/tmp/data"
      recurse: no
      patterns: "*.zip"
    register: zip_files
  - name: copy the zip files
    fetch:
      src: "{{ item.path }}"
      dest: "/tmp/app/"
      flat: yes
    with_items: "{{ zip_files.files }}"
    register: zip_status
    delegate_to: server-B

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

1
28.04.2021, 22:53

Теги

Похожие вопросы