Hola, tenemos la respuesta a tu pregunta, desplázate y la hallarás aquí.
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 decommand
oshell
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 |
|
Refleja el indicador de archivo rsync, habilita recursivo, enlaces, permisos, tiempos, propietario, indicadores de grupo y -D. |
suma de comprobaciónbooleano |
|
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 |
|
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 |
|
Copie los enlaces simbólicos a medida que se copia el elemento al que apuntan (el referente), en lugar del enlace simbólico. |
Eliminarbooleano |
|
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 |
|
Transfiera directorios sin recurrir. |
existente_onlybooleano |
|
Omita la creación de nuevos archivos en el receptor. |
grupobooleano |
|
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 |
|
Copiar enlaces simbólicos como enlaces simbólicos. Este parámetro toma el valor predeterminado de la opción de archivo. |
modocuerda |
|
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 |
|
Conservar propietario (solo superusuario). Este parámetro tiene como valor predeterminado el valor de la opción de archivo. |
parcialbooleano |
|
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 |
|
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 |
|
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 |
|
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 |
|
Conservar tiempos de modificación. Este parámetro toma por defecto el valor de la opción de archivo. |
use_ssh_argsbooleano |
|
Utilice los ssh_args especificados en ansible.cfg. |
verificar_hostbooleano |
|
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 hostthe synchronize task originates on
y el “host de destino” es el hostsynchronize 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 delremote_user
en el host de destino o en elbecome_user
sibecome=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)
Te mostramos las reseñas y valoraciones de los lectores
Recuerda algo, que te damos el privilegio agregar una reseña si diste con el hallazgo.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)