En tant qu'utilisateur Linux, vous connaissez probablement des outils qui vous permettent de télécharger des fichiers à partir de serveurs distants à l'aide de protocoles HTTP, HTTPS et FTP, tels que WGET et Curl. Lorsque vous effectuez des tâches d'automatisation, vous devrez parfois télécharger des fichiers et des packages pour des hôtes distants. Bien que vous puissiez utiliser WGet et Curl sur les hôtes distants pour effectuer cette fonction, vous pouvez également contourner l'installation requise pour utiliser ces outils à l'aide du module ANSIBLE GET_URL.
Ce didacticiel 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 conditions suivantes:
À propos du module get_url
Avant d'apprendre comment implémenter le module get_url, d'abord, il y a quelques choses qui valent la peine d'être comprises sur ce module. Le module get_url prend en charge les fonctionnalités suivantes:
Ensuite, nous vous montrerons comment utiliser le module get_url pour télécharger des fichiers avec divers 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échargez des fichiers à partir du serveur HTTP / HTTPS avec URL directe
Considérez le livre de jeu suivant qui crée un répertoire dans le ~ /.local et utilise le module get_url pour télécharger le package Debian MySQL.
NOTE: Vous pouvez trouver des packages MySQL Server dans la ressource fournie ci-dessous:
https: // linkfy.to / mysql packages
- hôtes: tout
- Nom: Téléchargez Debian MySQL Server à l'aide de HTTP / HTTPS
Tâches:
- Nom: créez le répertoire MySQL-Server dans / Home / User /.local
déposer:
Chemin: ~ /.local / mysql-server
État: répertoire
Mode: 0777
- Nom: Obtenez des packages MySQL-Server
get_url:
URL: «https: // téléchargements.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.déboucher.le goudron"
dest: ~ /.local / mysql-server
Mode: 0777
Vérification: 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 auquel stocker le fichier. La dernière section du playbook spécifie la somme de contrôle MD5 pour vérifier la validité du fichier.
NOTE: Dans le livre de jeu 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 livre de jeu, vous obtiendrez une sortie indiquant le succès ou l'échec des tâches.
$ anible-playbook download_mysql_server.yml play [Télécharger Debian MySQL Server en utilisant http / https] ************************************** **************************************************** **************************************************** ******************
Tâche [rassemblement des faits] ********************************************* **************************************************** **************************************************** *****************************************
OK: [35.222.210.12]
Tâche [Faire du répertoire MySQL-Server dans / Home / User /.local] ************************************************ **************************************************** **************************************************** ***********
35.222.210.12: OK = 3 Modification = 1 inaccessible = 0 Échec = 0 sauté = 0 RESSURÉ = 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: tout
- Nom: Téléchargez Debian MySQL Server à l'aide de HTTP / HTTPS
Tâches:
- Nom: créez le répertoire MySQL-Server dans / Home / User /.local
déposer:
Chemin: ~ /.local / mysql-serveur
État: répertoire
Mode: 0777
- Nom: Obtenez des packages MySQL-Server
get_url:
URL: https: // téléchargements.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.déboucher.le goudron
dest: ~ /.local / mysql-server
Mode: 0777
Vérification: SHA256: B5BB9D8014A0F9B1D61E21E796D78EEFDF1352F23CD32812F4850B878AE4944C
Pour utiliser une URL au lieu de coder en dur la somme de contrôle, considérez l'exemple suivant:
- hôtes: tout
- Nom: Téléchargez Debian MySQL Server à l'aide de HTTP / HTTPS
Tâches:
- Nom: créez le répertoire MySQL-Server dans / Home / User /.local
déposer:
Chemin: ~ /.local / mysql-serveur
État: répertoire
Mode: 0777
- Nom: Obtenez des packages MySQL-Server
get_url:
URL: https: // téléchargements.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.déboucher.le goudron
dest: ~ /.local / mysql-serveur
Mode: 0777
Vérification: sha256: https: // téléchargements.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.déboucher.le goudron.sha265
Téléchargez des fichiers avec un temps mort en ne répondant pas
Dans certains cas, vous pouvez avoir une URL de ressources spécifiée qui peut prendre plus de temps pour répondre ou n'est pas disponible. Cela peut entraîner la fermeture de la connexion avant la réponse du serveur, car le délai d'expiration par défaut est généralement de 10 secondes. Pour spécifier explicitement la valeur de délai d'expiration, utilisez le délai d'expiration: directive.
Considérez le livre de jeu suivant:
- hôtes: tout
- Nom: Téléchargez Debian Mysql Server avec le délai d'expiration
Tâches:
- Nom: créez le répertoire MySQL-Server dans / Home / User /.local
déposer:
Chemin: ~ /.local / mysql-server
État: répertoire
Mode: 0777
- Nom: Obtenez des packages MySQL-Server
get_url:
URL: https: // téléchargements.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.déboucher.le goudron
dest: ~ /.local / mysql-serveur
Mode: 0777
Vérification: sha256: https: // téléchargements.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.déboucher.le goudron.sha265
Timeout: 30
Le playbook ci-dessus spécifie le délai d'attente à 30 secondes, et la connexion sera supprimée si le serveur ne répond pas dans le temps défini.
Télécharger des fichiers avec l'authentification
Pour télécharger un fichier sur un serveur qui nécessite une authentification, vous devrez spécifier les valeurs de connexion.
Considérez le livre de jeu suivant:
- hôtes: tout
- Nom: téléchargez le fichier avec l'authentification
devenir: oui
get_url:
URL: http: // 102.15.192.120 / BASEUS / BASE DE DATA.le goudron.gz
dest: / sauvegardes
Nom d'utilisateur: utilisateur
mot de passe: 'pass'
Mode: 0777
Timeout: 5
Télécharger les fichiers à partir du chemin du fichier local
Pour télécharger un fichier à partir d'un chemin de fichier local, vous pouvez utiliser le schéma de fichier: // URI, suivi du chemin d'accès au fichier.
Considérez le livre de jeu suivant:
- hôtes: serveurs Web
- Nom: téléchargez le fichier depuis le chemin du fichier local
devenir: oui
get_url:
URL: fichier: /// sauvegarde / sécurisé / config.le goudron.gz
dest: / dev / null
Télécharger les fichiers FTP
Le téléchargement des 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: // en tant que protocole au 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: tout
Tâches:
- Nom: téléchargez le fichier depuis le serveur FTP
devenir: oui
get_url:
URL: FTP: // 192.168.11.101
dest: / sauvegardes
Mode: 0777
Options de module GET_URL 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 incluent les éléments suivants:
Conclusion
Cet article a discuté du module get_url dans Ansible en détail 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 en utilisant le module get_url.