Ansible: ¿Cómo copiar archivos, directorios o secuencias de comandos desde el host local al host remoto?

Publicado: 2019-02-24

Cómo copiar archivos de localhost a host remoto usando Ansible

Como parte del departamento de gestión de TI, la gente se ocupa de lots of scripts y herramientas de línea de comandos. Estoy seguro de que se enfrenta a situaciones cotidianas en las que tiene que copiar archivos o scripts a miles de hosts remotos.

La gente del departamento de TI no solo inicia sesión en cada thousands of hosts y ejecuta el script manualmente. Y es por eso que Ansible entra en escena. Ansible es una solución de administración de TI muy poderosa disponible para nosotros sin costo alguno.

En este tutorial, repasaremos los pasos para copiar archivos a un host remoto usando Ansible.

¿Qué vamos a hacer?

Copie el archivo crunchify.txt desde la ubicación /opt/ashah/ al directorio de destino del host remoto 192.66.129.83 /opt/ashah/ .

Paso 1

Instale Ansible en Linux Ubuntu o macOS. Siga los tutoriales para repasar los pasos detallados.

Paso 2

Comprendamos algunos conceptos básicos y la ubicación del archivo para este tutorial:

  • Ubicación del archivo de configuración: /etc/ansible/ansible.cfg
  • Archivo de secuencia de comandos: /opt/ashah/crunchify.yml
  • archivo de hosts: /opt/ashah/hosts
  • archivo para copiar: /opt/ashah/crunchify.txt (archivo de prueba)

Paso 3

contenido del archivo crunchify.yml .

Etapa 4

hosts el contenido del archivo. Asegúrese de cambiar la dirección IP a su host remoto.

Paso-5

Cree el archivo crunchify.txt con el contenido a continuación.

Paso-6

Ejecute este comando para copiar el archivo al host remoto:

  • Command : ansible-playbook -b -vvv -u root crunchify.yml -kkkk –extra-vars “crunchify-group” -i hosts

entendamos todos los parámetros:

  • -b : ejecuta operaciones con convertida (igual que —become).
  • -vvv: modo detallado (-vvv para obtener más información, -vvvv para habilitar la depuración de conexiones).
  • -u : conectarse como este usuario (predeterminado=Ninguno).
  • -kkkk: solicita la contraseña de conexión.
  • –extra-vars: establece variables adicionales como clave=valor o YAML/JSON, si el nombre del archivo se antepone con @.
  • -i: especifique la ruta del host de inventario o la lista de hosts separados por comas.

Eso es todo. Ha copiado correctamente el archivo.

¿Cómo verificar si el archivo se copia en un nuevo host remoto?

Simplemente inicie sesión en el host remoto y verifique la ubicación /opt/ashah y verá el archivo crunchify.txt

¿Cómo copiar el contenido de un directorio a otro directorio?

Simplemente cambie el valor src y desc del archivo crunchify.yml . Aquí hay un archivo crunchify.yml actualizado.

Todos los archivos de la carpeta /opt/ashah/ se copiarán en hosts remotos ahora.

Avíseme si tiene alguna pregunta sobre cómo copiar el archivo a una ubicación remota usando Ansible.