Ansible

Commande de copie Ansible

Commande de copie Ansible
Le module de copie Ansible vous permet de copier des fichiers et des dossiers de la machine locale vers des serveurs distants. Le module de copie est polyvalent. Vous pouvez effectuer de nombreuses tâches complexes avec. Plongeons-nous dans certaines tâches que vous devez effectuer régulièrement.

Copie de fichiers du local vers le distant

La plupart du temps, vous copierez des fichiers de serveurs locaux vers des serveurs distants. Voici un exemple de playbook d'exécution d'une telle tâche.

---
- hôtes : serveurs web
Tâches:
- nom : copier le fichier sur un serveur distant
copie:
src : ~/test.SMS
destination : /tmp

Dans l'exemple ci-dessus, nous ciblons tous les serveurs web groupe dans notre inventaire Ansible. La source est le test.SMS résidant dans le répertoire personnel de notre machine locale et la destination est le dossier /tmp sur la machine distante.

$ ansible-playbook 1_copy_to_remote.yml
 
JOUER [serveurs Web]
******************************************************** **************************
 
TÂCHE [Rassembler des faits]
************************************************** **************************
d'accord : [172.17.0.3]
 
TÂCHE [Fichier de copie Ansible sur le serveur distant]
************************************************** **************************
modifié : [172.17.0.3]
 
JOUER RÉCAPITULATIF
************************************************** ***************************
172.17.0.3                 : ok=2    changed=1    unreachable=0    failed=0

Si nous exécutons le playbook, nous devrions voir les résultats comme ci-dessus.

Les autorisations par défaut sont définies sur 0644 sur la machine distante :

# ls -alsh test.SMS
0 -rw-rw-r-- 1 a_user a_user 0 20 avril 08:49 test.SMS

Vous pouvez changer cela en ajoutant le paramètre mode :

---
- hôtes : serveurs web
Tâches:
- nom : copier le fichier sur un serveur distant
copie:
src : ~/test.SMS
destination : /tmp
mode : 0744

Vos autorisations sur la télécommande ressembleront donc à ceci :

# ls -alsh test.SMS
0 -rwxr--r-- 1 a_user a_user 0 20 avril 08:54 test.SMS

Copie de répertoires du local vers le distant

Pour copier des répertoires, vous avez deux options. Si vous mettez un / après le nom du répertoire, il copiera tout ce qui se trouve à l'intérieur de ce répertoire dans le dossier de destination. Si vous ne mettez pas le /, il créera d'abord le répertoire dans la destination, puis copiera tout à l'intérieur.

Essayons le module de copie avec le répertoire suivant situé dans notre dossier d'accueil local :

rép_test/
|-- imbriqué1
| '-- test1.SMS
|-- imbriqué2
| '-- test2.SMS
'-- test0.SMS

Si nous utilisons le code suivant :

---
- hôtes : serveurs web
Tâches:
- nom : copier le répertoire sur le serveur distant
copie:
src : ~/testdir
destination : /tmp

Ensuite, nous obtenons ce qui suit sur le serveur distant :

tmp/
'-- testdir
|-- imbriqué1
| '-- test1.SMS
|-- imbriqué2
| '-- test2.SMS
'-- test0.SMS

Copie de fichiers entre des répertoires sur des machines distantes

Ansible copy vous permet de copier des fichiers d'un répertoire à un autre sur la même machine distante. Mais vous ne pouvez effectuer cela que pour les fichiers, vous ne pouvez pas copier les répertoires. Vous devez utiliser le remote_src paramètre pour informer Ansible de vos intentions.

---
- hôtes : serveurs web
Tâches:
- name : Copier le fichier entre les répertoires sur un serveur distant
copie:
src : /tmp/test.SMS
destination : ~/test.SMS
remote_src : oui

Le code ci-dessus copiera /tmp/test.SMS dans le répertoire personnel de l'utilisateur (/home/[nom d'utilisateur]/).

Copie de fichiers avec plusieurs paramètres

Vous pouvez passer des paramètres individuels pour les fichiers.

---
- hôtes : serveurs web
Tâches:
- nom : copier des fichiers avec plusieurs modifications
copie:
src : " élément.src "
destination : " élément.dest "
mode : "élément.mode"
avec_éléments :
- src: '~/testdir2/test1.txt', destination : '/tmp/a.txt', mode : '0644'
- src: '~/testdir2/test2.txt', destination : '/tmp/b.txt', mode : '0755'
- src: '~/testdir2/test3.txt', destination : '/tmp/c.txt', mode : '0644'

Dans l'exemple ci-dessus, nous renommons et définissons des autorisations individuelles pour les fichiers. La sortie Ansible ressemble à ceci :

$ ansible-playbook 4_copy_to_remote_with_multiple_parameters.yml
 
JOUER [serveurs Web]
************************************************** ****************
 
TÂCHE [Rassembler des faits]
******************************************************** ****************
d'accord : [172.17.0.3]
 
TÂCHE [Copier les fichiers avec plusieurs modifications]
******************************************************** ****************
modifié : [172.17.0.3] => (item=u'dest': u'/tmp/a.txt', u'src' : u'~/testdir2/test1.SMS',
u'mode' : u'0644')
modifié : [172.17.0.3] => (item=u'dest': u'/tmp/b.txt', u'src' : u'~/testdir2/test2.SMS',
u'mode' : u'0755')
modifié : [172.17.0.3] => (item=u'dest': u'/tmp/c.txt', u'src' : u'~/testdir2/test3.SMS',
u'mode' : u'0644')
 
JOUER RÉCAPITULATIF
************************************************** ************************
172.17.0.3                 : ok=2    changed=1    unreachable=0    failed=0

Création de contenu sur des serveurs distants

Vous pouvez utiliser le module de copie pour créer du contenu sur des serveurs distants directement à partir du fichier playbook. Voici un exemple:

---
- hôtes : serveurs web
Tâches:
- name : utilisez une copie ansible pour créer du contenu sur un serveur distant
copie:
contenu : "Bonjour le serveur!\n"
destination : /tmp/bonjour.SMS

Cela créera le Bonjour.SMS sur le serveur distant qui contiendra "Hello Server!" texte.

# chat /tmp/bonjour.SMS
Bonjour serveur

Conclusion

Ansible copy est un module utile qui vous aide à copier des fichiers sur plusieurs serveurs. Cela devrait faciliter vos tâches de configuration.

Une étude plus approfondie:

http://docs.ansible.com/ansible/latest/modules/copy_module.html

Meilleurs émulateurs de console de jeu pour Linux
Cet article répertorie les logiciels d'émulation de console de jeu populaires disponibles pour Linux. L'émulation est une couche de compatibilité logi...
Meilleures distributions Linux pour les jeux en 2021
Le système d'exploitation Linux a parcouru un long chemin depuis son apparence originale, simple et basée sur le serveur. Ce système d'exploitation s'...
Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...