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

Скопируйте несколько файлов с помощью Ansible

Как скопировать больше одного файла в удаленные узлы с помощью Ansible в задаче?

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

4b9b3361

Ответ 1

Вы можете использовать цикл with_fileglob для этого:

- copy:
    src: "{{ item }}"
    dest: /etc/fooapp/
    owner: root
    mode: 600
  with_fileglob:
    - /playbooks/files/fooapp/*

Ответ 2

- name: Your copy task
  copy: src={{ item.src }} dest={{ item.dest }}
  with_items:
    - { src: 'containerizers', dest: '/etc/mesos/containerizers' }
    - { src: 'another_file', dest: '/etc/somewhere' }
    - { src: 'dynamic', dest: '{{ var_path }}' }
  # more files here

Ответ 3

Для этой цели вы можете использовать with_together:

- name: Copy multiple files to multiple directories
  copy: src={{ item.0 }} dest={{ item.1 }}
  with_together:
    - [ 'file1', 'file2', 'file3' ]
    - [ '/dir1/', '/dir2/', '/dir3/' ]

Ответ 4

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

- copy: src=/file1 dest=/destination/file1
- copy: src=/file2 dest=/destination/file2

# copy each file over that matches the given pattern
- copy: src={{ item }} dest=/destination/
  with_fileglob:
    - /files/*

Ответ 5

- hosts: lnx
  tasks:
    - find: paths="/appl/scripts/inq" recurse=yes patterns="inq.Linux*"
      register: file_to_copy
    - copy: src={{ item.path }} dest=/usr/local/sbin/
      owner: root
      mode: 0775
      with_items: files_to_copy.files