GNU/Linux >> Tutoriels Linux >  >> Linux

Comment cloner un référentiel Git avec Ansible

Lors de la configuration de serveurs distants avec Ansible, vous pouvez rencontrer des cas où vous devez obtenir des fichiers à partir d'un référentiel Git. Il peut s'agir d'un package logiciel provenant de référentiels publics ou de fichiers de configuration sur un référentiel privé.

Pour cloner un référentiel git à distance à l'aide d'Ansible, vous pouvez ajouter des entrées comme celle-ci à votre Playbook.

---
 - hosts: all
   tasks:
   - name: Clone a github repository
     git:
       repo: https://github.com/sqlite/sqlite.git
       dest: /home/debian/repos/
       clone: yes
       update: yes

Ne vous inquiétez pas. Je vais vous expliquer ce que ces paramètres signifient et comment le faire avec un exemple de tutoriel.

Cloner des dépôts Git avec Ansible

Je suppose que vous connaissez déjà les bases d'Ansible comme l'inventaire, les playbooks, etc. Sinon, vous pouvez suivre notre série de tutoriels Ansible.

Prérequis

Ansible doit être installé sur votre machine locale. Cette instance Ansible agit comme nœud de contrôle pour tous les hôtes distants. À l'aide du nœud de contrôle, vous pouvez créer des playbooks et des tâches à exécuter sur les machines distantes spécifiées.

Si vous choisissez de suivre ce didacticiel, assurez-vous d'avoir :

  1. Un nœud de contrôle et un hôte distant.
  2. Paires de clés SSH. La clé publique du nœud de contrôle doit être disponible dans le fichier authorized_keys des hôtes distants.
  3. Un utilisateur non root avec sudo privilèges sur les hôtes distants.
  4. Accès en écriture à un répertoire sur l'hôte distant pour stocker le contenu du référentiel cloné.

Configurer l'inventaire Ansible

Avant de continuer, vous devez configurer l'inventaire Ansible. L'inventaire Ansible est un fichier qui contient des informations sur les serveurs distants que vous souhaitez gérer avec Ansible.

Par défaut, le fichier se trouve dans /etc/ansible/hosts . Créez ce fichier manuellement s'il ne se ferme pas.

Ajoutez l'adresse IP de l'hôte distant dans ce fichier :

vim /etc/ansible/hosts

Cela pourrait ressembler à ceci :

Enregistrez le fichier.

Cloner un référentiel Git avec Ansible playbook

Maintenant que le fichier d'inventaire est configuré et que les clés SSH sont en place pour accéder aux hôtes distants à partir du nœud de contrôle, vous pouvez créer le Playbook Ansible.

Utilisez un éditeur de texte comme Vim et créez un fichier YAML.

vim clone.yaml

Modifiez le fichier et ajoutez les entrées suivantes.

---
 - hosts: all
   tasks:
   - name: Clone a github repository
     git:
       repo: https://github.com/sqlite/sqlite.git
       dest: /home/debian/repos/
       clone: yes
       update: yes

Dans le playbook ci-dessus, vous avez commencé par définir une nouvelle tâche et lui avez donné le nom "Clone a GitHub repository".

Ensuite, vous utilisez le git module pour spécifier le lien vers le référentiel SQLite GitHub.

Vous procédez ensuite à la définition de la destination du référentiel cloné. Il s'agit d'un répertoire local sur la machine distante.

Vous définissez l'attribut clone sur yes pour cloner le référentiel et le mettre à jour à l'aide de l'attribut update.

Pour exécuter le playbook, utilisez la commande :

ansible-playbook clone.yaml

Si le playbook échoue en raison de l'authentification SSH, vous pouvez spécifier le nom d'utilisateur à l'aide de l'indicateur -u comme :

ansible-playbook -u debian clone.yaml

Une fois les tâches exécutées, vous devriez avoir cloné le référentiel dans le répertoire spécifié.

Vous pouvez vous connecter à l'hôte distant pour vérifier que le référentiel a été correctement cloné :

Cela devrait vous donner une bonne idée du clonage d'un référentiel Git avec Ansible. Avec ces informations, vous devriez pouvoir utiliser les dépôts Git avec Ansible en fonction de vos besoins.

Si vous avez des questions ou des suggestions, veuillez laisser un commentaire ci-dessous.


Linux
  1. Comment installer des packages logiciels avec un playbook Ansible

  2. Comment cloner un référentiel Git dans un dossier spécifique

  3. Comment installer Ansible sur Debian 9 Stretch

  4. Comment Cd automatiquement après Git Clone?

  5. Guide pratique :Premiers pas avec Ansible

Comment installer Ansible sur Ubuntu 20.04 LTS

Comment travailler avec Ansible Provisioner dans Vagrant

Comment supprimer le référentiel distant Git

Comment configurer un référentiel git avec Plesk

Comment configurer et gérer un référentiel Git distant sous Linux

Comment installer et configurer WordPress avec Ansible