Ansible

Comment télécharger des fichiers à l'aide du module get_url d'Ansible

Comment télécharger des fichiers à l'aide du module get_url d'Ansible

En tant qu'utilisateur Linux, vous connaissez probablement les outils qui vous permettent de télécharger des fichiers à partir de serveurs distants à l'aide des protocoles HTTP, HTTPS et FTP, tels que wget et cURL. Lors de l'exécution de tâches d'automatisation, vous devrez parfois télécharger des fichiers et des packages sur des hôtes distants. Bien que vous puissiez utiliser wget et cURL sur les hôtes distants pour exécuter cette fonction, vous pouvez également contourner l'installation requise pour utiliser ces outils à l'aide du module Ansible get_url.

Ce tutoriel vous montre comment utiliser la commande Ansible get_url pour télécharger des fichiers à partir de serveurs distants.

Avant de commencer, la commande Ansible get_url nécessite les prérequis suivants :

  1. Le serveur distant à partir duquel le ou les fichiers doivent être téléchargés doit avoir un accès direct au serveur hôte.
  2. Le serveur hôte doit prendre en charge les protocoles HTTP et HTTPS.

À propos du module get_url

Avant d'apprendre comment implémenter le module get_url, tout d'abord, il y a quelques choses à comprendre à propos de ce module. Le module get_url prend en charge les fonctionnalités suivantes :

Ensuite, nous allons vous montrer comment utiliser le module get_url pour télécharger des fichiers avec différents protocoles et configurations.

Utilisation du module get_url pour obtenir des fichiers

Voici quelques exemples que vous pouvez implémenter à l'aide du module get_url lors du téléchargement de fichiers à partir d'un serveur distant.

Télécharger des fichiers à partir d'un serveur HTTP/HTTPS avec une URL directe

Considérez le playbook suivant qui crée un répertoire dans le ~/.local et utilise le module get_url pour télécharger le paquet Debian MySQL.

REMARQUE: Vous pouvez trouver des packages de serveur MYSQL dans la ressource fournie ci-dessous :

https://linkfy.vers/mysql-paquets

- hôtes : tous
- nom : Téléchargez le serveur Debian MySQL en utilisant HTTP/HTTPS
Tâches:
- nom : Créer le répertoire mysql-server dans /home/user/.local
déposer:
chemin : ~/.serveur local/mysql
état : répertoire
mode : 0777
- nom : GET MySQL-server packages
get_url :
URL : "https://téléchargements.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.le goudron"
destination : ~/.serveur local/mysql
mode : 0777
somme de contrôle : md5:5568e206a187a3b658392520540f556e

Le playbook ci-dessus commence par créer un répertoire dans $HOME/.local/mysql-server, où le package téléchargé doit être stocké. Si vous créez un répertoire dans un répertoire privilégié, n'oubliez pas d'utiliser la directive 'devenir'.

Ensuite, le playbook appelle le module get_url et spécifie l'URL à partir de laquelle télécharger le package, suivi du répertoire de destination dans lequel stocker le fichier. La dernière section du playbook spécifie la somme de contrôle md5 pour vérifier la validité du fichier.

REMARQUE: Dans le playbook ci-dessus, nous avons codé en dur la somme de contrôle, mais vous pouvez spécifier l'URL à laquelle la somme de contrôle est hébergée.

Après avoir exécuté le playbook, vous obtiendrez une sortie indiquant le succès ou l'échec des tâches.

$ ansible-playbook download_mysql_server.yml PLAY [Télécharger le serveur Debian MySQL en utilisant HTTP/HTTPS] ************************************** ************************************************** ************************************************** ******************
TÂCHE [Rassembler des faits] ********************************************* ************************************************** ************************************************** ********************************************
d'accord : [35.222.210.12]
TASK [Créer le répertoire mysql-server dans /home/user/.local] ************************************************ ************************************************** ************************************************** ***********
35.222.210.12 : ok=3 modifié=1 inaccessible=0 échec=0 ignoré=0 sauvé=0 ignoré=0

Une fois le processus terminé, vous pouvez vous connecter à l'hôte et vérifier si le fichier existe.

Télécharger des fichiers avec la somme de contrôle sha256

Vous pouvez également télécharger des fichiers et les vérifier à l'aide de la somme de contrôle sha256, comme indiqué dans l'exemple de playbook ci-dessous :

- hôtes : tous
- nom : Téléchargez le serveur Debian MySQL en utilisant HTTP/HTTPS
Tâches:
- nom : Créer le répertoire mysql-server dans /home/user/.local
déposer:
chemin : ~/.serveur local/mysql
état : répertoire
mode : 0777
- nom : GET MySQL-server packages
get_url :
URL : https://téléchargements.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.le goudron
destination : ~/.serveur local/mysql
mode : 0777
somme de contrôle : sha256:b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c

Pour utiliser une URL au lieu de coder en dur la somme de contrôle, considérons l'exemple suivant :

- hôtes : tous
- nom : Téléchargez le serveur Debian MySQL en utilisant HTTP/HTTPS
Tâches:
- nom : Créer le répertoire mysql-server dans /home/user/.local
déposer:
chemin : ~/.serveur local/mysql
état : répertoire
mode : 0777
- nom : GET MySQL-server packages
get_url :
URL : https://téléchargements.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.le goudron
destination : ~/.serveur local/mysql
mode : 0777
somme de contrôle : sha256 : https://téléchargements.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.le goudron.sha265

Télécharger des fichiers avec délai d'attente en cas d'échec de réponse

Dans certains cas, vous pouvez avoir une URL de ressource spécifiée qui peut prendre plus de temps à répondre ou qui n'est pas disponible. Cela peut entraîner la fermeture de la connexion avant que le serveur ne réponde, car le délai d'expiration par défaut est généralement de 10 secondes. Pour spécifier explicitement la valeur du délai d'expiration, utilisez le délai d'expiration : directif.

Considérez le livre de jeu suivant :

- hôtes : tous
- nom : Télécharger le serveur Debian MySQL avec délai d'attente
Tâches:
- nom : Créer le répertoire mysql-server dans /home/user/.local
déposer:
chemin : ~/.serveur local/mysql
état : répertoire
mode : 0777
- nom : GET MySQL-server packages
get_url :
URL : https://téléchargements.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.le goudron
destination : ~/.serveur local/mysql
mode : 0777
somme de contrôle : sha256 : https://téléchargements.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.deb-bundle.le goudron.sha265
délai d'attente : 30

Le playbook ci-dessus spécifie le délai d'attente de 30 secondes, et la connexion sera interrompue si le serveur ne répond pas dans le délai imparti.

Télécharger des fichiers avec authentification

Pour télécharger un fichier sur un serveur nécessitant une authentification, vous devrez spécifier les valeurs de connexion.

Considérez le livre de jeu suivant :

- hôtes : tous
- nom : Télécharger le fichier avec authentification
devenir : oui
get_url :
URL : http://102.15.192.120/sauvegardes/base de données.le goudron.gz
destination : /sauvegardes
nom d'utilisateur : utilisateur
mot de passe : 'pass'
mode : 0777
délai d'attente : 5

Télécharger des fichiers à partir du chemin d'accès au fichier local

Pour télécharger un fichier à partir d'un chemin de fichier local, vous pouvez utiliser le schéma d'URI file://, suivi du chemin d'accès au fichier.

Considérez le livre de jeu suivant :

- hôtes : serveurs web
- nom : Télécharger le fichier à partir du chemin d'accès au fichier local
devenir : oui
get_url :
URL : file:///backups/secure/config.le goudron.gz
destination : /dev/null

Télécharger des fichiers FTP

Le téléchargement de fichiers FTP est très similaire au processus décrit dans la section précédente. Tout ce que vous avez à faire est de spécifier ftp:// comme protocole vers le serveur.

Pour télécharger un fichier sécurisé, vous devez également ajouter les informations de connexion, comme indiqué précédemment.

Considérez le livre de jeu suivant :

- hôtes : tous
Tâches:
- nom : Télécharger le fichier depuis le serveur FTP
devenir : oui
get_url :
URL : ftp://192.168.11.101
destination : /sauvegardes
mode : 0777

Options du module get_url d'Ansible

Le module get_url prend également en charge diverses options que vous pouvez utiliser pour spécifier et surveiller le téléchargement et la gestion des fichiers. Les options disponibles avec le module get_url sont les suivantes :

Conclusion

Cet article a discuté en détail du module get_url dans Ansible et vous a montré comment utiliser ce module pour télécharger des fichiers à partir de diverses sources. Vous pouvez utiliser cet article pour référencer comment télécharger des fichiers dans Ansible à l'aide du module get_url.

Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...
OpenTTD contre Simutrans
Créer votre propre simulation de transport peut être amusant, relaxant et extrêmement attrayant. C'est pourquoi vous devez vous assurer que vous essay...
Tutoriel OpenTTD
OpenTTD est l'un des jeux de simulation d'entreprise les plus populaires. Dans ce jeu, vous devez créer une merveilleuse entreprise de transport. Cepe...