Estoy probando ansible y quería tener un setup sencillo para que gitlab hiciera pruebas del código en un contenedor de docker a través de un pipeline, por el momento aquí dejo algo sencillo, tengo este playbook:
simple_playbook.yml
---
- hosts: all
connection: local
tasks:
- name: curl instalation
apt: pkg=curl update_cache=yes
La conexión es local para ya que no es necesario trabajar con llaves ssh al estar aplicando las pruebas al contendor cada vez.
el archivo .gitlab-ci.yml es el siguiente:
image: "tonymoyoy/ubuntu_ansible:v2"
stages:
- build
- test
build:
stage: build
script:
- echo $HOSTNAME > hosts
- echo "Running ansible playbook"
- ansible-playbook -i hosts local-playbook.yml
test:
stage: test
script:
- echo "Test pending"
La forma que logre que se ejecutara en el contenedor fue agregando el hostname a un archivo y luego haciendo referencia al archivo hosts como variable del comando ansible-playbook
En este caso use la variable HOSTNAME de gitlab-ci (ver https://docs.gitlab.com/ee/ci/variables/) aunque también pude simplemente usar el comando hostname y enviar el resultado a el archivo, intente hacer la llamada después del comando ansible-playbook pero no encontré una forma de hacerlo funcionar.
Espero que este material puede servir de referencia para alguien
No hay comentarios:
Publicar un comentario