Durante la configurazione di server remoti con Ansible, potresti riscontrare istanze in cui è necessario ottenere file da un repository Git. Potrebbe trattarsi di un pacchetto software da repository pubblici o file di configurazione su un repository privato.
Per clonare un repository git in remoto utilizzando Ansible, puoi aggiungere voci come questa al tuo 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
Non preoccuparti. Spiegherò cosa significano questi parametri e come farlo con un tutorial di esempio.
Clonazione di repository Git con Ansible
Presumo che tu abbia già familiarità con le nozioni di base di Ansible come l'inventario, i playbook ecc. In caso contrario, puoi seguire la nostra serie di tutorial di Ansible.
Prerequisito
Devi avere Ansible installato sul tuo computer locale. Questa istanza di Ansible funge da nodo di controllo per tutti gli host remoti. Utilizzando il nodo di controllo, puoi creare playbook e attività da eseguire sulle macchine remote specificate.
Se scegli di seguire questo tutorial, assicurati di avere:
- Un nodo di controllo e un host remoto.
- Coppie di chiavi SSH. La chiave pubblica del nodo di controllo deve essere disponibile nel file authorized_keys negli host remoti.
- Un utente non root con
sudo
privilegi sugli host remoti. - Scrivere l'accesso a una directory sull'host remoto per memorizzare il contenuto del repository clonato.
Imposta Ansible Inventory
Prima di procedere ulteriormente, è necessario configurare l'inventario Ansible. L'inventario di Ansible è un file che contiene informazioni sui server remoti che desideri gestire con Ansible.
Per impostazione predefinita, il file si trova in /etc/ansible/hosts
. Crea questo file manualmente se non esce.
Aggiungi l'indirizzo IP dell'host remoto in questo file:
vim /etc/ansible/hosts
Potrebbe assomigliare a questo:

Salva il file.
Clonazione di un repository Git con il playbook Ansible
Ora che hai configurato il file di inventario e le chiavi SSH sono in atto per accedere agli host remoti dal nodo di controllo, puoi creare Ansible Playbook.
Usa un editor di testo come Vim e crea un file YAML.
vim clone.yaml
Modifica il file e aggiungi le seguenti voci.
---
- hosts: all
tasks:
- name: Clone a github repository
git:
repo: https://github.com/sqlite/sqlite.git
dest: /home/debian/repos/
clone: yes
update: yes
Nel playbook sopra, hai iniziato definendo una nuova attività e le hai assegnato il nome "Clone a GitHub repository".
Successivamente, stai usando git
modulo per specificare il collegamento al repository GitHub SQLite.
Si procede quindi alla definizione della destinazione per il repository clonato. Questa è una directory locale nella macchina remota.
Imposta l'attributo clone su yes per clonare il repository e aggiornarlo utilizzando l'attributo update.
Per eseguire il playbook, usa il comando:
ansible-playbook clone.yaml
Se il playbook non riesce a causa dell'autenticazione SSH, puoi specificare il nome utente utilizzando il flag -u come:
ansible-playbook -u debian clone.yaml
Una volta eseguite le attività, dovresti clonare il repository nella directory specificata.
Puoi accedere all'host remoto per verificare che il repository sia stato clonato correttamente:

Questo dovrebbe darti un'idea decente sulla clonazione di un repository Git con Ansible. Con queste informazioni, dovresti essere in grado di utilizzare i repository Git con Ansible in base alle tue esigenze.
Se hai domande o suggerimenti, lascia un commento qui sotto.