Ansible

Cómo descargar archivos usando el módulo get_url de Ansible

Cómo descargar archivos usando el módulo get_url de Ansible

Como usuario de Linux, probablemente esté familiarizado con las herramientas que le permiten descargar archivos desde servidores remotos utilizando protocolos HTTP, HTTPS y FTP, como wget y cURL. Al realizar tareas de automatización, ocasionalmente necesitará descargar archivos y paquetes a hosts remotos. Si bien puede usar wget y cURL en los hosts remotos para realizar esta función, también puede omitir la instalación requerida para usar estas herramientas usando el módulo Ansible get_url.

Este tutorial le muestra cómo usar el comando Ansible get_url para descargar archivos desde servidores remotos.

Antes de comenzar, el comando Ansible get_url requiere los siguientes requisitos previos:

  1. El servidor remoto desde el que se descargarán los archivos debe tener acceso directo al servidor host.
  2. El servidor host debe admitir los protocolos HTTP y HTTPS.

Acerca del módulo get_url

Antes de aprender a implementar el módulo get_url, primero, hay algunas cosas que vale la pena comprender acerca de este módulo. El módulo get_url admite las siguientes características:

A continuación, le mostraremos cómo usar el módulo get_url para descargar archivos con varios protocolos y configuraciones.

Uso del módulo get_url para obtener archivos

Los siguientes son algunos ejemplos que puede implementar usando el módulo get_url al descargar archivos desde un servidor remoto.

Descargar archivos del servidor HTTP / HTTPS con URL directa

Considere el siguiente libro de jugadas que crea un directorio en ~ /.local y usa el módulo get_url para descargar el paquete Debian MySQL.

NOTA: Puede encontrar paquetes de servidor MYSQL en el recurso que se proporciona a continuación:

https: // linkfy.a / mysql-paquetes

- hosts: todos
- name: Descargue el servidor Debian MySQL usando HTTP / HTTPS
Tareas:
- nombre: Hacer directorio mysql-server en / home / user /.local
expediente:
ruta: ~ /.servidor local / mysql
estado: directorio
modo: 0777
- nombre: OBTENER paquetes de servidor MySQL
get_url:
url: "https: // descargas.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.paquete deb.alquitrán"
dest: ~ /.servidor local / mysql
modo: 0777
suma de comprobación: md5: 5568e206a187a3b658392520540f556e

El libro de jugadas anterior comienza creando un directorio en $ HOME /.local / mysql-server, donde se debe almacenar el paquete descargado. Si está creando un directorio en un directorio privilegiado, recuerde usar la directiva 'convertirse'.

A continuación, el libro de jugadas llama al módulo get_url y especifica la URL desde la que descargar el paquete, seguida del directorio de destino en el que almacenar el archivo. La sección final del libro de jugadas especifica la suma de verificación md5 para verificar la validez del archivo.

NOTA: En el libro de jugadas anterior, codificamos la suma de comprobación, pero puede especificar la URL en la que se aloja la suma de comprobación.

Después de ejecutar el libro de jugadas, obtendrá un resultado que indica el éxito o el fracaso de las tareas.

$ ansible-playbook download_mysql_server.yml PLAY [Descargar el servidor Debian MySQL usando HTTP / HTTPS] ************************************ ************************************************ ************************************************ ******************
TAREA [Recopilación de datos] ****************************************** ************************************************ ************************************************ ****************************************
ok: [35.222.210.12]
TAREA [Hacer directorio mysql-server en / home / user /.local] ********************************************* ************************************************ ************************************************ ***********
35.222.210.12: ok = 3 cambiado = 1 inalcanzable = 0 fallido = 0 omitido = 0 rescatado = 0 ignorado = 0

Una vez que se completa el proceso, puede iniciar sesión en el host y verificar si el archivo existe.

Descargar archivos con la suma de comprobación sha256

También puede descargar archivos y verificarlos usando la suma de comprobación sha256, como se muestra en el libro de jugadas de ejemplo a continuación:

- hosts: todos
- name: Descargue el servidor Debian MySQL usando HTTP / HTTPS
Tareas:
- nombre: Hacer directorio mysql-server en / home / user /.local
expediente:
ruta: ~ /.servidor local / mysql
estado: directorio
modo: 0777
- nombre: OBTENER paquetes de servidor MySQL
get_url:
url: https: // descargas.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.paquete deb.alquitrán
dest: ~ /.servidor local / mysql
modo: 0777
suma de comprobación: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c

Para utilizar una URL en lugar de codificar la suma de comprobación, considere el siguiente ejemplo:

- hosts: todos
- name: Descargue el servidor Debian MySQL usando HTTP / HTTPS
Tareas:
- nombre: Hacer directorio mysql-server en / home / user /.local
expediente:
ruta: ~ /.servidor local / mysql
estado: directorio
modo: 0777
- nombre: OBTENER paquetes de servidor MySQL
get_url:
url: https: // descargas.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.paquete deb.alquitrán
dest: ~ /.servidor local / mysql
modo: 0777
suma de comprobación: sha256: https: // descargas.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.paquete deb.alquitrán.sha265

Descargar archivos con tiempo de espera en caso de no responder

En algunos casos, es posible que tenga una URL de recurso específica que puede tardar más en responder o no está disponible. Esto puede hacer que la conexión se cierre antes de que el servidor responda, ya que el tiempo de espera predeterminado suele ser de 10 segundos. Para especificar explícitamente el valor del tiempo de espera, use el tiempo de espera: directiva.

Considere el siguiente libro de jugadas:

- hosts: todos
- name: Descarga el servidor Debian MySQL con tiempo de espera
Tareas:
- nombre: Hacer directorio mysql-server en / home / user /.local
expediente:
ruta: ~ /.servidor local / mysql
estado: directorio
modo: 0777
- nombre: OBTENER paquetes de servidor MySQL
get_url:
url: https: // descargas.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.paquete deb.alquitrán
dest: ~ /.servidor local / mysql
modo: 0777
suma de comprobación: sha256: https: // descargas.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.paquete deb.alquitrán.sha265
tiempo de espera: 30

El libro de jugadas anterior especifica el tiempo de espera en 30 segundos, y la conexión se interrumpirá si el servidor no responde dentro del tiempo establecido.

Descargar archivos con autenticación

Para descargar un archivo a un servidor que requiere autenticación, deberá especificar los valores de inicio de sesión.

Considere el siguiente libro de jugadas:

- hosts: todos
- nombre: Descargar archivo con autenticación
convertirse en: si
get_url:
url: http: // 102.15.192.120 / copias de seguridad / base de datos.alquitrán.gz
dest: / copias de seguridad
nombre de usuario: usuario
contraseña: 'pass'
modo: 0777
tiempo de espera: 5

Descargar archivos de la ruta del archivo local

Para descargar un archivo desde una ruta de archivo local, puede usar el esquema file: // URI, seguido de la ruta al archivo.

Considere el siguiente libro de jugadas:

- hosts: servidores web
- nombre: Descargar archivo desde la ruta del archivo local
convertirse en: si
get_url:
url: file: /// backups / secure / config.alquitrán.gz
dest: / dev / null

Descargar archivos FTP

La descarga de archivos FTP es muy similar al proceso descrito en la sección anterior. Todo lo que necesita hacer es especificar ftp: // como protocolo para el servidor.

Para descargar un archivo seguro, también debe agregar la información de inicio de sesión, como se mostró anteriormente.

Considere el siguiente libro de jugadas:

- hosts: todos
Tareas:
- nombre: Descarga el archivo desde el servidor FTP
convertirse en: si
get_url:
url: ftp: // 192.168.11.101
dest: / copias de seguridad
modo: 0777

Opciones del módulo Ansible get_url

El módulo get_url también admite varias opciones que puede usar para especificar y monitorear la descarga y administración de archivos. Las opciones disponibles con el módulo get_url incluyen las siguientes:

Conclusión

Este artículo discutió el módulo get_url en Ansible en detalle y le mostró cómo usar este módulo para descargar archivos de varias fuentes. Puede usar este artículo para hacer referencia a cómo descargar archivos en Ansible usando el módulo get_url.

El cursor salta o se mueve aleatoriamente mientras escribe en Windows 10
Si descubre que el cursor del mouse salta o se mueve por sí solo, automáticamente, de manera aleatoria mientras escribe en una computadora portátil o ...
Cómo invertir la dirección de desplazamiento del mouse y los paneles táctiles en Windows 10
Ratón y Panel táctils no solo facilitan la informática, sino que también hacen que sea más eficiente y requieran menos tiempo. No podemos imaginar una...
Cómo cambiar el tamaño, el color y el esquema del puntero del mouse y del cursor en Windows 10
El puntero y el cursor del mouse en Windows 10 son aspectos muy importantes del sistema operativo. Esto también se puede decir de otros sistemas opera...