Como copiar todos os filhos, exceto um em Ansible?

6

Esta documentação explica como copiar arquivos e diretórios usando o módulo copy no Ansible. Como copiar todos os filhos, exceto um?

Discussão

  1. As opções não esclarecem como isso pode ser feito.
  2. Copiar todos os filhos individualmente não é uma opção, pois o pai contém mais de 100 filhas.
por 030 08.09.2016 / 14:35

2 respostas

9

A melhor opção seria provavelmente usar o módulo synchronize .

synchronize is a wrapper around the rsync command, meant to make common tasks with rsync easier.

Considerando que o módulo copy copia arquivos usando Python e é limitado em sua funcionalidade. Há uma nota no copiar a documentação do módulo :

The “copy” module recursively copy facility does not scale to lots (>hundreds) of files. For alternative, see synchronize module, which is a wrapper around rsync.

Com o módulo synchronize é possível passar exclude padrões via rsync_opts para o comando rsync sendo executado pelo Ansible.

# Synchronize passing in extra rsync options
synchronize:
    src: /tmp/helloworld
    dest: /var/www/helloword
    rsync_opts:
      - "--exclude=.git"

Mas o módulo synchronize tem algumas advertências . Como o requisito de rsync instalado na máquina local e remota. É por isso que eu não usaria quando não fosse necessário.

    
por 08.09.2016 / 14:43
2

Se eu tivesse que usar apenas copy , aqui está o que eu faria. Neste exemplo, estou usando patterns que são específicos do Python e um .hiddenfile (estou usando oculto para demonstrar que o find tem muitas opções para explorar). No entanto, a ideia básica - você pode ir à loucura com filtros de padrões / regex para atender às suas necessidades.

- name: prepare a list of files to copy from some place
  find:
    paths: /var/some-place
    hidden: yes
    patterns:
      - "*.py"
      - ".hiddenfile"
  delegate_to: localhost
  register: target_files

- name: copy files to other place
  copy:
    src: "{{ item.path }}"
    dest: /var/other-place
  with_items: "{{ target_files.files }}"
  tags:
    - copy
    
por 27.04.2018 / 02:23

Tags