Comment copier plusieurs fichiers dans ANSIBLE

Comment copier plusieurs fichiers dans ANSIBLE
ANSIBLE est un outil d'automatisation Nifty qui permet l'automatisation de diverses fonctionnalités. Il accorde un contrôle total à l'utilisateur sur ses appareils, qu'ils soient locaux ou éloignés. Il est rempli de plusieurs modules (environ 750 - 800 d'entre eux), qui s'avèrent tous assez bénéfiques pour les utilisateurs. Le manuel ANSIBLE est simple à écrire et il aide à exercer les tâches qui lui sont attribuées, comme pour définir du temps pour un certain travail ou pour faire une pause sur certaines activités, etc.

Il y a des moments où nous devrons peut-être copier plusieurs fichiers d'un appareil à un autre. Anible fournit également divers modules pour cela. Ces modules nous permettent de copier plusieurs fichiers en même temps et de les envoyer sur des appareils distants. Cela nous amène au sujet de cet article: le module de copie Ansible, que nous allons mettre en œuvre dans ce guide.

Copier plusieurs fichiers

Dans le cas où nous voulons transférer plusieurs fichiers, nous devons faire un playbook avec de nombreuses tâches pour chaque copie. Bien que cela puisse résoudre le problème, il n'est pas très économe en temps et peut devenir tout à fait fastidieux. Par conséquent, nous aurions un grand livre de jeu avec plus de chances d'erreurs humaines. Il serait également plus difficile de déboguer. Heureusement, nous pouvons utiliser plusieurs autres approches pour résoudre ce problème qui sont beaucoup plus pratiques et sauver nos ressources.

Utilisation de boucles

En général, ANSIBLE est un simple outil d'automatisation qui ne nécessite pas de connaissances de programmation à part entière. Cependant, si vous avez le savoir-faire de base sur le fonctionnement d'un code source, il peut être très utile dans ANMIBLE et vous donner un aperçu plus profond de résoudre divers problèmes que vous rencontrez de temps en temps.

Une boucle en programmation informatique est un ensemble d'instructions qui indique au système de répéter un certain ensemble de commandes pour une quantité spécifiée de fois ou jusqu'à ce qu'une certaine condition soit remplie.

Exemples

-Nom: Copiez tous les fichiers dans MyConf /
copie:
src: items
dest: / etc / myapp /
propriétaire: root
groupe: root
Mode: u = rw, g = rw, o = r
Avec_fileglob:
-"Myconf / *"

Exécutez le playbook en utilisant cette commande dans le terminal Linux.

ANSIBLE-PLAYBOOK TESTBOOK.YML

Le script ci-dessus copie «MyConf /» ainsi que tout son contenu au répertoire de destination / etc / myapp / sur l'hôte distant. La commande de copie est émise pour le transfert de contenu copié. Avec_fileglob est la boucle qui s'exécute jusqu'à ce que les fichiers soient complètement copiés à l'hôte distant.

Cette approche fonctionne lorsqu'il y a plusieurs fichiers à transférer dans le même répertoire.

Copie du répertoire

Ceci est une autre approche pour envoyer des copies de fichiers à l'hôte distant. Ici, nous copie le répertoire entier contenant les fichiers que nous devons transférer et l'envoyer au nœud distant. Cela peut prendre un peu de temps car il faut d'abord déplacer tous les fichiers vers un certain répertoire, puis copier complètement le répertoire. Un exemple le démontre.

-Nom: Copie du répertoire sur l'appareil distant
copie:
src: myconfig /
dest: etc / myfolder
propriétaire: root
groupe: root
Mode: u = rw, g = rw, o = r

Le script ci-dessus copie le répertoire MyConfig / sur un appareil distant avec destination / etc / myfolder. C'est un transfert de répertoire inter. Le segment «Mode» garantit simplement que les objets du système de fichiers sont créés avec les autorisations correctes. Ces modes peuvent être affichés sur la page principale du module sous «Copier les paramètres du module».

Copie de fichiers sur plusieurs destinations distantes

Pour plus d'efficacité dans la copie de plusieurs fichiers, nous pouvons utiliser une boucle pour envoyer des fichiers à plusieurs destinations. Laissez-nous utiliser le mécanisme de boucle pour envoyer 4 services publics à l'hôte distant en une seule fois.

-Nom: Copie de plusieurs fichiers sur plusieurs destinations
copie:
src: item.src
dest: item.dest
propriétaire: root
groupe: root
Mode: u = rw, g = rw, o = r
avec des éléments:
-src: setup1.conf, dest: / etc / setup1f /
-src: setup2.conf, dest: / etc / setup2f /
-src: setup3.conf, dest: / etc / setup3f /
-src: setup4.conf, dest: / etc / setup4f /

Le code ci-dessus copie les fichiers de configuration de 4 utilitaires du propriétaire de la racine à l'hôte distant au répertoire / etc / de configuration. L'article.src ”indique que plus d'un élément est copié à partir de la machine cible.

Copier les fichiers d'une destination à un autre sur l'hôte distant

Avec ANSIBLE, nous pouvons également copier des fichiers d'une destination à une autre sur l'hôte distant. Bien que cette procédure soit valable pour les fichiers, il ne fonctionne pas pour les répertoires. Un petit script qui transfère un fichier de test de Folder1 à Folder2 est illustré ci-dessous.

-Nom: transfert de fichier sur l'hôte distant
copie:
src: $ home / dosder1 / test_file
Remote_src: vrai
dest: $ home / folder2 / test_file

Créez un fichier de sauvegarde à l'hôte distant avant de copier

Il y a des moments où nous pouvons copier un autre fichier par erreur. Un remède pour éviter de tels problèmes consiste à créer un fichier de sauvegarde sur le serveur distant.

Le module de copie ANSIBLE est livré avec un paramètre de «sauvegarde» pour contrer que cela. Dans le cas où un fichier distant est là et n'est pas le même que le fichier copié, un nouveau fichier sera créé. La différence est que le nouveau fichier sera annexé avec l'horodatage actuel et le nom du fichier d'origine. Par défaut, le paramètre de sauvegarde a sa valeur définie comme «non».

Par exemple, le script suivant crée une sauvegarde de «MyScript.txt ”dans le répertoire / ABC de l'hôte distant. Il sera nommé quelque chose comme 'myscript.SMS.8565.2022-03-17 @ 20: 51: 18 '.

- hôtes: blocs
Tâches:
- Nom: Exemple de sauvegarde du fichier de copie Ansible
copie:
src: ~ / myscript.SMS
dest: / abc
Sauvegarde: oui

Conclusion

Dans cet article, nous avons parcouru le module de copie et ses paramètres. Nous avons vu comment nous pourrions utiliser plusieurs approches pour transférer plusieurs fichiers de local à l'hôte distant et manipuler également certains aspects tels que la modification du répertoire des fichiers copiés à distance ou le transfert de plusieurs fichiers vers plusieurs destinations.

C'était tout pour le module de copie dans ANSIBLE ainsi que les procédures de copie pour plusieurs fichiers sur les appareils. Espérons que toute confusion que vous aviez concernant le mécanisme de copie anible est effacée après avoir parcouru cet article.