Al configurar servidores remotos con Ansible, puede encontrar instancias en las que necesite obtener archivos de un repositorio de Git. Esto podría ser un paquete de software de repositorios públicos o archivos de configuración en un repositorio privado.
Para clonar un repositorio de Git de forma remota con Ansible, puede agregar entradas como esta a su 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
No te preocupes. Explicaré qué significan esos parámetros y cómo hacerlo con un tutorial de muestra.
Clonación de repositorios Git con Ansible
Supongo que ya está familiarizado con los conceptos básicos de Ansible, como el inventario, los libros de jugadas, etc. Si no es así, puede seguir nuestra serie de tutoriales de Ansible.
Requisito previo
Debe tener Ansible instalado en su máquina local. Esta instancia de Ansible actúa como nodo de control para todos los hosts remotos. Usando el nodo de control, puede crear libros de jugadas y tareas para ejecutar en las máquinas remotas especificadas.
Si elige seguir este tutorial, asegúrese de tener:
- Un nodo de control y un host remoto.
- Pares de claves SSH. La clave pública del nodo de control debe estar disponible en el archivo authorized_keys en los hosts remotos.
- Un usuario no root con
sudo
privilegios en los hosts remotos. - Acceso de escritura a un directorio en el host remoto para almacenar el contenido del repositorio clonado.
Configurar el inventario de Ansible
Antes de continuar, debe configurar el inventario de Ansible. El inventario de Ansible es un archivo que contiene información sobre los servidores remotos que desea administrar con Ansible.
De forma predeterminada, el archivo se encuentra en /etc/ansible/hosts
. Cree este archivo manualmente si no sale.
Agregue la dirección IP del host remoto en este archivo:
vim /etc/ansible/hosts
Podría verse así:
Guarde el archivo.
Clonación de un repositorio Git con Ansible playbook
Ahora que tiene configurado el archivo de inventario y las claves SSH para acceder a los hosts remotos desde el nodo de control, puede crear el Ansible Playbook.
Usa un editor de texto como Vim y crea un archivo YAML.
vim clone.yaml
Edite el archivo y agregue las siguientes entradas.
---
- hosts: all
tasks:
- name: Clone a github repository
git:
repo: https://github.com/sqlite/sqlite.git
dest: /home/debian/repos/
clone: yes
update: yes
En el libro de jugadas anterior, comenzó definiendo una nueva tarea y le dio el nombre "Clonar un repositorio de GitHub".
A continuación, está utilizando git
módulo para especificar el enlace al repositorio SQLite GitHub.
A continuación, procede a definir el destino del repositorio clonado. Este es un directorio local en la máquina remota.
Establece el clon de atributo en sí para clonar el repositorio y actualizarlo usando el atributo de actualización.
Para ejecutar el libro de jugadas, use el comando:
ansible-playbook clone.yaml
Si el libro de jugadas falla debido a la autenticación SSH, puede especificar el nombre de usuario usando el indicador -u como:
ansible-playbook -u debian clone.yaml
Una vez que se hayan ejecutado las tareas, debe tener el repositorio clonado en el directorio especificado.
Puede iniciar sesión en el host remoto para verificar que el repositorio se clonó correctamente:
Esto debería darle una idea decente sobre cómo clonar un repositorio de Git con Ansible. Con esta información, debería poder usar los repositorios de Git con Ansible según sus requisitos.
Si tiene alguna pregunta o sugerencia, deje un comentario a continuación.