Nota

Este módulo es parte de ansible-base e incluido en todas las instalaciones de Ansible. En la mayoría de los casos, puede usar la copia del nombre corto del módulo incluso sin especificar el collections: palabra clave. A pesar de eso, le recomendamos que utilice el FQCN para facilitar la vinculación a la documentación del módulo y evitar conflictos con otras colecciones que puedan tener el mismo nombre de módulo.

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

Sinopsis

  • los copy El módulo copia un archivo de la máquina local o remota a una ubicación en la máquina remota.
  • Utilizar el ansible.builtin.fetch módulo para copiar archivos desde ubicaciones remotas a la caja local.
  • Si necesita interpolación de variables en archivos copiados, utilice la ansible.builtin.template módulo. Usando una variable en el content campo dará como resultado una salida impredecible.
  • Para los destinos de Windows, use el ansible.windows.win_copy módulo en su lugar.

Nota

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

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
atributoscuerda agregado en 2.3 de ansible.builtin Los atributos que debe tener el archivo o directorio resultante. Para obtener indicadores compatibles, consulte la página de manual para chattr en el sistema de destino Esta cadena debe contener los atributos en el mismo orden que el mostrado por lsattr.Los = El operador se asume como predeterminado, de lo contrario + o - los operadores deben incluirse en la cadena.
alias: attr
respaldobooleano agregado en 0.7 de ansible.builtin
    Opciones:

  • no
Cree un archivo de respaldo que incluya la información de la marca de tiempo para que pueda recuperar el archivo original si de alguna manera lo golpeó incorrectamente.
suma de comprobacióncuerda agregado en 2.5 de ansible.builtin Suma de comprobación SHA1 del archivo que se está transfiriendo. Se utiliza para validar que la copia del archivo se realizó correctamente. Si no se proporciona, ansible utilizará la suma de comprobación calculada localmente del archivo src.
contenidocuerda agregado en 1.1 de ansible.builtin Cuando se usa en lugar de src, establece el contenido de un archivo directamente en el valor especificado. Funciona solo cuando dest es un archivo. Crea el archivo si no existe. Para formateo avanzado o si content contiene una variable, use el ansible.builtin.template módulo.
descifrarbooleano agregado en 2.4 de ansible.builtin
    Opciones:

  • no
Esta opción controla el descifrado automático de los archivos de origen mediante la bóveda.
destsendero / requerido Ruta absoluta remota donde se debe copiar el archivo. src es un directorio, este también debe ser un directorio. dest es un camino inexistente y si alguno dest termina con “/” o src es un directorio, dest se crea. dest es una ruta relativa, el directorio de inicio lo determina el host remoto. src y dest son archivos, el directorio padre de dest no se crea y la tarea falla si aún no existe.
modo_directoriocrudo agregado en 1.5 de ansible.builtin Al hacer una copia recursiva, configure el modo para los directorios, si no está configurado usaremos los valores predeterminados del sistema. El modo solo se configura en los directorios que son de nueva creación y no afectará a los que ya existían.
seguirbooleano agregado en 1.8 de ansible.builtin
    Opciones:

  • no
Esta bandera indica que los enlaces del sistema de archivos en el destino, si existen, deben seguirse.
fuerzabooleano agregado en 1.1 de ansible.builtin
    Opciones:

  • no
Influir en si el archivo remoto siempre debe reemplazarse. yes, el archivo remoto se reemplazará cuando el contenido sea diferente al de la fuente. no, el archivo solo se transferirá si el destino no existe. thirsty ha quedado obsoleto y se eliminará en 2.13.
alias: sediento
grupocuerda Nombre del grupo que debería ser propietario del archivo / directorio, como se enviaría a chown.
local_followbooleano agregado en 2.4 de ansible.builtin
    Opciones:

  • no
Esta bandera indica que se deben seguir los enlaces del sistema de archivos en el árbol de fuentes, si existen.
modocrudo Los permisos del archivo o directorio de destino. /usr/bin/chmod recuerde que los modos son en realidad números octales. Debe agregar un cero a la izquierda para que el analizador YAML de Ansible sepa que es un número octal (como 0644 o 01777) o citarlo (como '644' o '1777') para que Ansible reciba una cadena y pueda hacer su propia conversión de cadena a número. Dar a Ansible un número sin seguir una de estas reglas terminará con un número decimal que tendrá resultados inesperados.A partir de Ansible 1.8, el modo puede especificarse como un modo simbólico (por ejemplo, u+rwx o u=rw,g=r,o=rA partir de Ansible 2.3, el modo también puede ser la cadena especial preserve.preserve significa que al archivo se le otorgarán los mismos permisos que al archivo de origen. Cuando haga una copia recursiva, consulte también directory_mode.Si mode no se especifica y el archivo de destino no existe, el predeterminado umask en el sistema se utilizará al configurar el modo para el archivo recién creado. mode no se especifica y el archivo de destino lo hace existe, se utilizará el modo del archivo existente. mode es la mejor manera de garantizar que los archivos se creen con los permisos correctos. Consulte CVE-2020-1736 para obtener más detalles.
dueñocuerda Nombre del usuario que debería ser propietario del archivo / directorio, como se enviaría a chown.
remote_srcbooleano agregado en 2.0 de ansible.builtin
    Opciones:

  • no
Influir si src necesita ser transferido o ya está presente de forma remota. no, buscará src en el nodo del controlador. yes buscará src en el nodo administrado (remoto).remote_src admite copia recursiva a partir de la versión 2.8.remote_src solo funciona con mode=preserve a partir de la versión 2.6. El cifrado automático de archivos no funciona cuando remote_src=yes.
selevelcuerda La parte de nivel del contexto del archivo SELinux. Este es el atributo MLS / MCS, a veces conocido como range.Cuando se establece en _default, usará el level parte de la póliza si está disponible.
serolacuerda El rol parte del contexto del archivo SELinux. _default, usará el role parte de la póliza si está disponible.
setypecuerda La parte de tipo del contexto del archivo SELinux. _default, usará el type parte de la póliza si está disponible.
seusercuerda La parte del usuario del contexto del archivo SELinux. system política, cuando corresponda. _default, usará el user parte de la póliza si está disponible.
srcsendero Ruta local a un archivo para copiar al servidor remoto. Puede ser absoluta o relativa. Si la ruta es un directorio, se copia de forma recursiva. En este caso, si la ruta termina con “/”, solo los contenidos internos de ese directorio se copian en el destino. De lo contrario, si no termina con “/”, se copia el directorio con todos los contenidos. Este comportamiento es similar al rsync herramienta de línea de comandos.
unsafe_writesbooleano agregado en 2.2 de ansible.builtin
    Opciones:

  • no
Influir en el momento de utilizar la operación atómica para evitar la corrupción de datos o lecturas inconsistentes del archivo de destino. De forma predeterminada, este módulo utiliza operaciones atómicas para evitar la corrupción de datos o lecturas inconsistentes de los archivos de destino, pero a veces los sistemas están configurados o simplemente dañados de manera que evitan esto. . Un ejemplo son los archivos montados en la ventana acoplable, que no se pueden actualizar atómicamente desde el interior del contenedor y solo se pueden escribir de manera insegura. Esta opción permite que Ansible recurra a métodos inseguros para actualizar archivos cuando fallan las operaciones atómicas (sin embargo, no lo hace) forzar a Ansible a realizar escrituras inseguras). Las escrituras no seguras están sujetas a condiciones de carrera y pueden provocar daños en los datos.
validarcuerda El comando de validación para ejecutar antes de copiar en su lugar. La ruta al archivo para validar se pasa a través de ‘% s’ que debe estar presente como en los ejemplos a continuación. El comando se pasa de forma segura para que las funciones de shell como la expansión y las tuberías no funcionen .

Notas

Nota

  • los ansible.builtin.copy La función de copia recursiva del módulo no se escala a lotes (> cientos) de archivos.
  • Apoyos check_mode.

Ver también

Ver también

ansible.builtin.assemble

La documentación oficial sobre el ansible.builtin.assemble módulo.

ansible.builtin.fetch

La documentación oficial sobre el ansible.builtin.fetch módulo.

ansible.builtin.file

La documentación oficial sobre el ansible.builtin.file módulo.

ansible.builtin.template

La documentación oficial sobre el ansible.builtin.template módulo.

ansible.posix.synchronize

La documentación oficial sobre el ansible.posix.synchronize módulo.

ansible.windows.win_copy

La documentación oficial sobre el ansible.windows.win_copy módulo.

Ejemplos de

-name: Copy file with owner and permissions
  ansible.builtin.copy:src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode:'0644'-name: Copy file with owner and permission, using symbolic representation
  ansible.builtin.copy:src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: u=rw,g=r,o=r

-name: Another symbolic mode example, adding some permissions and removing others
  ansible.builtin.copy:src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: u+rw,g-wx,o-rwx

-name: Copy a new "ntp.conf" file into place, backing up the original if it differs from the copied version
  ansible.builtin.copy:src: /mine/ntp.conf
    dest: /etc/ntp.conf
    owner: root
    group: root
    mode:'0644'backup: yes

-name: Copy a new "sudoers" file into place, after passing validation with visudo
  ansible.builtin.copy:src: /mine/sudoers
    dest: /etc/sudoers
    validate: /usr/sbin/visudo -csf %s

-name: Copy a "sudoers" file on the remote machine for editing
  ansible.builtin.copy:src: /etc/sudoers
    dest: /etc/sudoers.edit
    remote_src: yes
    validate: /usr/sbin/visudo -csf %s

-name: Copy using inline content
  ansible.builtin.copy:content:'# This file was moved to /etc/other.conf'dest: /etc/mine.conf

-name: If follow=yes, /path/to/file will be overwritten by contents of foo.conf
  ansible.builtin.copy:src: /etc/foo.conf
    dest: /path/to/link  # link to /path/to/filefollow: yes

-name: If follow=no, /path/to/link will become a file and be overwritten by contents of foo.conf
  ansible.builtin.copy:src: /etc/foo.conf
    dest: /path/to/link  # link to /path/to/filefollow: no

Valores devueltos

Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:

Llave Devuelto Descripción
archivo de respaldocuerda cambiado y si copia de seguridad = sí Nombre del archivo de respaldo creado.
Muestra:/camino a/[email protected]: 09 ~
suma de comprobacióncuerda éxito Suma de comprobación SHA1 del archivo después de ejecutar la copia.
Muestra:6e642bb8dd5c2e027bf21dd923337cbb4214f827
destcuerda éxito Archivo / ruta de destino.
Muestra:/ruta/a/archivo.txt
gidentero éxito ID de grupo del archivo, después de la ejecución.
Muestra:100
grupocuerda éxito Grupo del archivo, después de la ejecución.
Muestra:httpd
md5sumcuerda cuando es compatible Suma de comprobación MD5 del archivo después de ejecutar la copia.
Muestra:2a5aeecc61dc98c4d780b14b330e3282
modocuerda éxito Permisos del objetivo, después de la ejecución.
Muestra:420
dueñocuerda éxito Propietario del archivo, después de la ejecución.
Muestra:httpd
Tallaentero éxito Tamaño del objetivo, después de la ejecución.
Muestra:1220
srccuerda cambió Archivo de origen utilizado para la copia en la máquina de destino.
Muestra:/home/httpd/.ansible/tmp/ansible-tmp-1423796390.97-147729857856000/source
estadocuerda éxito Estado del objetivo, después de la ejecución.
Muestra:expediente
uidentero éxito Identificación del propietario del archivo, después de la ejecución.
Muestra:100

Autores

  • Equipo principal de Ansible
  • Michael DeHaan