El módulo Ansible copy es uno de los módulos de archivos en Ansible. Ansible módulo de copia se utiliza para copiar el archivo de la máquina ansible al servidor remoto. Con el módulo de copia ansible puede hacer varias cosas vamos a ver lo que podemos hacer con el módulo de copia ansible. En esta entrada del blog vamos a ver ejemplos de módulos de copia ansible y cómo copiar los archivos de maestro ansible al servidor remoto.
Copiar el archivo con la fuerza sí-Ansible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp
En este ejemplo devops.txt archivo en la máquina ansible se copiará a la ubicación de destino en el servidor remoto. pero si el mismo archivo (con el mismo nombre) ya existe en la ubicación de destino en el servidor remoto, se reemplazará con el archivo de la máquina ansible. No se preocupará de si el archivo existe o no existe en la ubicación remota. Ciegamente copiará el archivo de la máquina ansible al servidor remoto.
- Tutorial del módulo Ansible Fetch
Por defecto, force es yes
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: yes
Así que ambos códigos anteriores funcionan igual. Mencionar force: si o quitar force: si depende de ti. Para una mejor comprensión puede mencionar force: yes.
Copiar el archivo con force no-Ansible Copy Module
tasks:- name: Copy file to a remote machine copy: src: ~/devops.txt dest: /tmp force: no
Aquí no se forzará. si el archivo ya existe en la ubicación de destino no se reemplazará el archivo. Eso significa que no estamos forzando a copiar el archivo de la máquina ansible al servidor remoto.
Copiar un directorio de la máquina ansible al destino remoto-Ejemplos de Ansible Copy
Supongamos que tenemos un directorio llamado scripts. En este directorio tenemos dos archivos llamados file1 y file2 y el directorio Linux, en el directorio Linux tenemos dos archivos llamados file 3 y file 4.
scripts├── file1├── file2└── linux ├── file3 ├── file4
Ahora la tarea es que tenemos que enviar o copiar el directorio Linux al servidor remoto.
tasks:- name: Copy a directory to a remote machine copy: src: /User/scripts/linux dest: /tmp
Al usar el código anterior se puede enviar o copiar el directorio de Linux de la máquina ansible a una ubicación del servidor remoto.
Vea al final de src:/user/scripts/linux no hemos mencionado (/) por lo que el directorio de Linux se copiará de la máquina ansible a la remota.
La salida en el directorio tmp remoto.
├── tmp└── linux ├── file3 ├── file4
Si se menciona (/) al final de src, los archivos del directorio Linux (file3 y file4) se copiarán en el remoto.
Ver src:/user/scripts/linux/
tasks:- name: Copy files to a remote machine copy: src: /User/scripts/linux/ dest: /tmp
La salida en el directorio tmp remoto
└── tmp ├── file3 ├── file4
Sólo los archivos del directorio Linux se copiarán en el remoto si se menciona (/) al final de source.
Copiar el archivo con permisos-Ejemplos de copia ansible
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: 0644
Al utilizar el código anterior puede copiar el archivo con diferentes permisos.
- copy: src: /srd/myfiles/abc.conf dest: /etc/abc.conf owner: abc group: abc mode: "u=rw,g=r,o=r"
Funcionará como el mismo ejemplo anterior. Aquí mencionamos los permisos usando un modo simbólico equivalente a 0644. podemos usar cualquier tipo de modo.
Copiar contenido al servidor remoto-Ejemplos de copia ansible
copy:content: "Hello devops"dest: /tmp/devops.txt
Al usar este módulo puedes escribir contenido y copiar ese contenido al servidor remoto. Si el archivo no ha existido en una ubicación remota creará ese archivo devops.txt y escribirá ese contenido en devops.txt. Aquí devops.txt es un nombre de archivo que puede dar cualquier nombre de archivo. Con el módulo ansible copy, podemos crear el archivo con el contenido.
Si quieres saber más sobre ansible copy, puedes consultar la documentación de ansible.
- https://docs.ansible.com/ansible/2.3/copy_module.html