AAROC.CODE-RADE-build-containers
Conteneurs de construction CODE-RADE
Rôles utilisés
Ce dépôt contient le code Ansible-Container pour construire les conteneurs d'esclaves de construction CODE-RADE. Il utilise le rôle AAROC.CODE-RADE-container
d'Ansible Galaxy.
Conteneurs
Les conteneurs sont construits avec Ansible Container et stockés sur quay.io. Nous construisons les images de base suivantes :
Image | Statut |
---|---|
CentOS 6 | |
Ubuntu 14.04 | |
CentOS 7 | |
Ubuntu 16.10 |
Les conteneurs peuvent être utilisés en les téléchargeant depuis quay.io, par exemple :
docker pull quay.io/aaroc/code-rade-ubuntu1610
Le conteneur ajoute un utilisateur, un jdk et un démon ssh pour jenkins, ainsi que quelques éléments spécifiques à CODE-RADE :
- Le fichier
ci
qui définit quelques variables :$SOFT_DIR
: Le chemin d'installation du logiciel pour l'environnement CIsetenv SOFT_DIR /data/ci-build/$::env(SITE)/$::env(OS)/$::env(ARCH)/$::env(NAME)/$::env(VERSION)
$REPO_DIR
: Les artefacts construits (en tarball) dans l'environnement CIsetenv REPO_DIR /data/artefacts/$::env(SITE)/$::env(OS)/$::env(ARCH)/$::env(NAME)/$::env(VERSION)
$SRC_DIR
: Le cache local pour les tarballs sourcessetenv SRC_DIR /data/src/$::env(NAME)/$::env(VERSION)
$MODULES
: Le chemin des fichiers de modules pour l'environnement CIset MODULES /data/modules
- Le fichier
deploy
qui définit les mêmes variables sauf que la racine de$SOFT_DIR
se trouve sous/cvmfs
- Un conteneur de données (
CODE-RADE-data
) est utilisé pour conserver les données d'une construction à l'autre et pour rendre les constructions portables.
Les conteneurs de données
Nous utilisons le modèle de conteneur de données pour fournir une persistance des artefacts de construction, à travers les jobs. Ceux-ci sont exprimés dans le container.yml
uniquement pour Docker.
Pour construire
Pour construire les conteneurs, vous pouvez simplement faire :
ansible-container --project-name code-rade build --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/ --use-local-python
Pousser vers le registre d'images
container.yml
contient la spécification des registres utilisés. Nous utilisons quay par défaut. Pour pousser l'image construite vers un registre, afin de la rendre utilisable par un autre site de construction, faites :
ansible-container --project-name code-rade push --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/ --push-to quay --tag latest
Exécution
Ces conteneurs sont conçus pour être provisionnés automatiquement par un système CI. Le point d'entrée par défaut est ssh sur le port 5200.
Vous pouvez les utiliser pour vérifier les constructions localement. Pour les exécuter, faites :
ansible-container --project-name code-rade run --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/
Ensuite, connectez-vous au conteneur en cours d'exécution :
ssh jenkins@172.17.0.2 -p 5200
Déploiement
Comme mentionné précédemment, ces conteneurs sont destinés à être utilisés depuis des environnements CI. Si vous souhaitez vraiment exécuter un cluster de construction statique, vous pouvez utiliser la commande --deploy
d'Ansible Container. Voir https://docs.ansible.com/ansible-container/reference/deploy.html pour les options de déploiement.
Citation
Si vous produisez des recherches ou d'autres résultats et que ces conteneurs font partie de ce processus, veuillez citer comme suit :
Bruce Becker. (2017). AAROC/CODE-RADE-build-containers : CODE-RADE Foundation Release 3 - Build Containers [Jeu de données]. Zenodo. http://doi.org/10.5281/zenodo.572275
ansible-galaxy install AAROC.CODE-RADE-build-containers