AAROC.CODE-RADE-build-containers
Contenedores de construcción CODE-RADE
Roles utilizados
Este repositorio contiene el código Ansible-Container para construir los contenedores esclavos de construcción CODE-RADE. Utiliza el AAROC.CODE-RADE-container
rol de Ansible Galaxy.
Contenedores
Los contenedores se construyen con Ansible Container y se almacenan en quay.io. Construimos las siguientes imágenes base:
Imagen | Estado |
---|---|
CentOS 6 | |
Ubuntu 14.04 | |
CentOS 7 | |
Ubuntu 16.10 |
Los contenedores pueden ser utilizados descargándolos de quay.io, por ejemplo:
docker pull quay.io/aaroc/code-rade-ubuntu1610
El contenedor añade un usuario, jdk y un daemon ssh para Jenkins, así como algunas características especiales de CODE-RADE:
- El archivo de módulo
ci
, que configura algunas variables:$SOFT_DIR
: La ruta de instalación de software para el entorno CIsetenv SOFT_DIR /data/ci-build/$::env(SITE)/$::env(OS)/$::env(ARCH)/$::env(NAME)/$::env(VERSION)
$REPO_DIR
: Los artefactos construidos (en tarball) en el entorno CIsetenv REPO_DIR /data/artefacts/$::env(SITE)/$::env(OS)/$::env(ARCH)/$::env(NAME)/$::env(VERSION)
$SRC_DIR
: La caché local para los tarballs de origensetenv SRC_DIR /data/src/$::env(NAME)/$::env(VERSION)
$MODULES
: La ruta a los archivos de módulos para el entorno CIset MODULES /data/modules
- El archivo de módulo
deploy
, que configura las mismas variables, excepto que la raíz de$SOFT_DIR
está bajo/cvmfs
. - Un contenedor de datos (
CODE-RADE-data
), utilizado para persistir los datos de una construcción a otra y hacer que las construcciones sean portátiles.
Los Contenedores de Datos
Utilizamos el patrón de contenedor de datos para proporcionar persistencia a los artefactos de construcción entre trabajos. Esto se expresa en el container.yml
solo para Docker.
Para construir
Para construir los contenedores, simplemente puedes hacer:
ansible-container --project-name code-rade build --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/ --use-local-python
Publicar en el registro de imágenes
El container.yml
contiene la especificación de qué registros se utilizan. Usamos quay por defecto. Para publicar la imagen construida en un registro, de modo que sea utilizable por otro sitio de construcción, haz
ansible-container --project-name code-rade push --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/ --push-to quay --tag latest
Ejecutar
Estos contenedores están diseñados para ser provisionados automáticamente por un sistema CI. El punto de entrada predeterminado es ssh en el puerto 5200.
Puedes usarlos para verificar construcciones localmente. Para ejecutarlos, haz:
ansible-container --project-name code-rade run --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/
Luego accede al contenedor en ejecución:
ssh jenkins@172.17.0.2 -p 5200
Despliegue
Como se mencionó antes, estos contenedores son para el aprovisionamiento desde entornos CI. Si realmente deseas ejecutar un clúster de construcción estático, puedes usar el comando --deploy
de Ansible Container. Consulta https://docs.ansible.com/ansible-container/reference/deploy.html para opciones de despliegue.
Citación
Si produces investigaciones u otros resultados y estos contenedores son parte de ese flujo de trabajo, por favor, cita como:
Bruce Becker. (2017). AAROC/CODE-RADE-build-containers: Código de FUNDACIÓN CODE-RADE Lanzamiento 3 - Contenedores de Construcción [Conjunto de datos]. Zenodo. http://doi.org/10.5281/zenodo.572275
ansible-galaxy install AAROC.CODE-RADE-build-containers