Nota

Este complemento es parte del colección ansible.posix (versión 1.1.1).

Para instalarlo use: ansible-galaxy collection install ansible.posix.

Para usarlo en un libro de jugadas, especifique: ansible.posix.synchronize.

Nuevo en la versión 1.0.0: de ansible.posix

  • Sinopsis
  • Parámetros
  • Notas
  • Ver también
  • Ejemplos de

Sinopsis

  • synchronize es un envoltorio de rsync para hacer que las tareas comunes en sus libros de jugadas sean rápidas y fáciles.
  • Se ejecuta y se origina en el host local donde se ejecuta Ansible.
  • Por supuesto, puede usar el command action para llamar a rsync usted mismo, pero también debe agregar un buen número de opciones estándar y datos de host.
  • Este módulo no está destinado a proporcionar acceso a todo el poder de rsync, pero hace que las invocaciones más comunes sean más fáciles de implementar. usted still puede que necesite llamar a rsync directamente a través de command o shell dependiendo de su caso de uso.

Nota

Este módulo tiene un correspondiente complemento de acción.

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
archivobooleano
    Opciones:

  • no
Refleja el indicador de archivo rsync, habilita recursivo, enlaces, permisos, tiempos, propietario, indicadores de grupo y -D.
suma de comprobaciónbooleano
    Opciones:

  • no
Omitir según la suma de comprobación, en lugar del tiempo de modificación y el tamaño; Tenga en cuenta que la opción “archivar” todavía está habilitada de forma predeterminada; la opción “suma de comprobación” no la deshabilitará.
comprimirbooleano
    Opciones:

  • no
Comprima los datos del archivo durante la transferencia. En la mayoría de los casos, déjelo habilitado a menos que cause problemas.
copy_linksbooleano
    Opciones:

  • no
Copie los enlaces simbólicos a medida que se copia el elemento al que apuntan (el referente), en lugar del enlace simbólico.
Eliminarbooleano
    Opciones:

  • no
Eliminar archivos en dest que no existen (después de la transferencia, no antes) en el src ruta Esta opción requiere recursive=yes.Esta opción ignora los archivos excluidos y se comporta como el rsync opt –delete-excluded.
destcuerda / requerido Ruta en el host de destino que se sincronizará desde la fuente. La ruta puede ser absoluta o relativa.
dest_portentero Número de puerto para ssh en el host de destino. Antes de Ansible 2.0, la var de inventario ansible_ssh_port tenía prioridad sobre este valor. Este parámetro tiene el valor predeterminado de ansible_ssh_port o ansible_port, los remote_port config o el valor de la configuración del cliente ssh si no se ha establecido ninguno de los primeros.
dirsbooleano
    Opciones:

  • no
Transfiera directorios sin recurrir.
existente_onlybooleano
    Opciones:

  • no
Omita la creación de nuevos archivos en el receptor.
grupobooleano
    Opciones:

  • no
Conservar grupo. Este parámetro tiene como valor predeterminado el valor de la opción de archivo.
link_destlista / elementos = cadena Agregue un destino para el enlace duro durante el rsync.
Enlacesbooleano
    Opciones:

  • no
Copiar enlaces simbólicos como enlaces simbólicos. Este parámetro toma el valor predeterminado de la opción de archivo.
modocuerda
    Opciones:

  • jalar
  • empujar
Especifique la dirección de la sincronización. En el modo de inserción, el host local o el delegado es la fuente. En el modo de extracción, el host remoto en contexto es la fuente.
dueñobooleano
    Opciones:

  • no
Conservar propietario (solo superusuario). Este parámetro tiene como valor predeterminado el valor de la opción de archivo.
parcialbooleano
    Opciones:

  • no
Le dice a rsync que conserve el archivo parcial, lo que debería hacer que una transferencia posterior del resto del archivo sea mucho más rápida.
permanentesbooleano
    Opciones:

  • no
Preservar los permisos. Este parámetro tiene como valor predeterminado el valor de la opción de archivo.
llave privadasendero Especifique la clave privada que se utilizará para las conexiones rsync basadas en SSH (p. Ej. ~/.ssh/id_rsa).
recursivobooleano
    Opciones:

  • no
Recurse en directorios. Este parámetro toma por defecto el valor de la opción de archivo.
rsync_optslista / elementos = cadena Especifique opciones adicionales de rsync pasando una matriz. Tenga en cuenta que una cadena vacía en rsync_opts terminará transfiriendo el directorio de trabajo actual.
rsync_pathcuerda Especifique el comando rsync para que se ejecute en el host remoto. Ver --rsync-path en la página del manual de rsync. Para especificar el comando rsync para que se ejecute en el host local, debe configurar esto como su tarea var ansible_rsync_path.
rsync_timeoutentero Defecto:
0
Especifique un --timeout para el comando rsync en segundos.
set_remote_userbooleano
    Opciones:

  • no
Poner [email protected] para las rutas remotas Si tiene una configuración ssh personalizada para definir el usuario remoto para un host que no coincide con el usuario del inventario, debe establecer este parámetro en no.
srccuerda / requerido Ruta en el host de origen que se sincronizará con el destino. La ruta puede ser absoluta o relativa.
vecesbooleano
    Opciones:

  • no
Conservar tiempos de modificación. Este parámetro toma por defecto el valor de la opción de archivo.
use_ssh_argsbooleano
    Opciones:

  • no
Utilice los ssh_args especificados en ansible.cfg.
verificar_hostbooleano
    Opciones:

  • no
Verifique la clave del host de destino.

Notas

Nota

  • rsync debe instalarse tanto en el host local como en el remoto.
  • Para el synchronize módulo, el “host local” es el host the synchronize task originates ony el “host de destino” es el host synchronize is connecting to.
  • El “host local” se puede cambiar a un host diferente usando delegate_to. Esto permite copiar entre dos hosts remotos o completamente en una máquina remota.
  • El usuario y los permisos para sincronizar src son los del usuario que ejecuta la tarea Ansible en el host local (o el usuario_remoto para un host delegate_to cuando se usa delegate_to).
  • El usuario y los permisos para sincronizar dest son los del remote_user en el host de destino o en el become_user si become=yes está activo.
  • En Ansible 2.0, se produjo un error en el módulo de sincronización en el “host local”. Esto se solucionó en Ansible 2.0.1.
  • Actualmente, la sincronización se limita a elevar los permisos a través de sudo sin contraseña. Esto se debe a que rsync se está conectando a la máquina remota y rsync no nos da una forma de pasar las credenciales de sudo.
  • Actualmente, solo hay unos pocos tipos de conexión que admiten la sincronización (ssh, paramiko, local y docker) porque se ha determinado una estrategia de sincronización para esos tipos de conexión. Tenga en cuenta que la conexión para estos no debe necesitar una contraseña, ya que rsync en sí mismo está haciendo la conexión y rsync no nos proporciona una forma de pasar una contraseña a la conexión.
  • Espere que dest = ~ / x sea ~/ x incluso si usa sudo.
  • Inspeccione la salida detallada para validar que el usuario / host / ruta de destino sea lo que se esperaba.
  • Para excluir archivos y directorios de la sincronización, puede agregar .rsync-filter archivos al directorio de origen.
  • El demonio rsync debe estar en funcionamiento con el permiso correcto cuando se usa el protocolo rsync en la ruta de origen o destino.
  • los synchronize fuerzas del módulo –delay-updates para evitar dejar un destino en un estado intermedio roto si el proceso rsync subyacente encuentra un error. Aquellos que sincronizan una gran cantidad de archivos que están dispuestos a intercambiar seguridad por rendimiento deben llamar a rsync directamente.
  • link_destination está sujeto a las mismas limitaciones que el demonio rsync subyacente. Los enlaces físicos solo se conservan si los subárboles relativos del origen y el destino son los mismos. Se evitarán los intentos de establecer un vínculo fijo en un directorio que sea un subdirectorio de la fuente.

Ver también

Ver también

Copiar

La documentación oficial sobre el Copiar módulo.

community.windows.win_robocopy

La documentación oficial sobre el community.windows.win_robocopy módulo.

Ejemplos de

-name: Synchronization of src on the control machine to dest on the remote hosts
  ansible.posix.synchronize:src: some/relative/path
    dest: /some/absolute/path

-name: Synchronization using rsync protocol (push)
  ansible.posix.synchronize:src: some/relative/path/
    dest: rsync://somehost.com/path/

-name: Synchronization using rsync protocol (pull)
  ansible.posix.synchronize:mode: pull
    src: rsync://somehost.com/path/
    dest: /some/absolute/path/

-name:  Synchronization using rsync protocol on delegate host (push)
  ansible.posix.synchronize:src: /some/absolute/path/
    dest: rsync://somehost.com/path/
  delegate_to: delegate.host

-name: Synchronization using rsync protocol on delegate host (pull)
  ansible.posix.synchronize:mode: pull
    src: rsync://somehost.com/path/
    dest: /some/absolute/path/
  delegate_to: delegate.host

-name: Synchronization without any --archive options enabled
  ansible.posix.synchronize:src: some/relative/path
    dest: /some/absolute/path
    archive: no

-name: Synchronization with --archive options enabled except for --recursive
  ansible.posix.synchronize:src: some/relative/path
    dest: /some/absolute/path
    recursive: no

-name: Synchronization with --archive options enabled except for --times, with --checksum option enabled
  ansible.posix.synchronize:src: some/relative/path
    dest: /some/absolute/path
    checksum: yes
    times: no

-name: Synchronization without --archive options enabled except use --links
  ansible.posix.synchronize:src: some/relative/path
    dest: /some/absolute/path
    archive: no
    links: yes

-name: Synchronization of two paths both on the control machine
  ansible.posix.synchronize:src: some/relative/path
    dest: /some/absolute/path
  delegate_to: localhost

-name: Synchronization of src on the inventory host to the dest on the localhost in pull mode
  ansible.posix.synchronize:mode: pull
    src: some/relative/path
    dest: /some/absolute/path

-name: Synchronization of src on delegate host to dest on the current inventory host.
  ansible.posix.synchronize:src: /first/absolute/path
    dest: /second/absolute/path
  delegate_to: delegate.host

-name: Synchronize two directories on one remote host.
  ansible.posix.synchronize:src: /first/absolute/path
    dest: /second/absolute/path
  delegate_to:" inventory_hostname "-name: Synchronize and delete files in dest on the remote host that are not found in src of localhost.
  ansible.posix.synchronize:src: some/relative/path
    dest: /some/absolute/path
    delete: yes
    recursive: yes

# This specific command is granted su privileges on the destination-name: Synchronize using an alternate rsync command
  ansible.posix.synchronize:src: some/relative/path
    dest: /some/absolute/path
    rsync_path: su -c rsync

# Example .rsync-filter file in the source directory# - var       # exclude any path whose last part is 'var'# - /var      # exclude any path starting with 'var' starting at the source directory# + /var/conf # include /var/conf even though it was previously excluded-name: Synchronize passing in extra rsync options
  ansible.posix.synchronize:src: /tmp/helloworld
    dest: /var/www/helloworld
    rsync_opts:-"--no-motd"-"--exclude=.git"# Hardlink files if they didn't change-name: Use hardlinks when synchronizing filesystems
  ansible.posix.synchronize:src: /tmp/path_a/foo.txt
    dest: /tmp/path_b/foo.txt
    link_dest: /tmp/path_a/

# Specify the rsync binary to use on remote host and on local host-hosts: groupofhosts
  vars:ansible_rsync_path: /usr/gnu/bin/rsync

  tasks:-name: copy /tmp/localpath/ to remote location /tmp/remotepath
      ansible.posix.synchronize:src: /tmp/localpath/
        dest: /tmp/remotepath
        rsync_path: /usr/gnu/bin/rsync

Autores

  • Timothy Appnel (@tima)