AAROC.CODE-RADE-build-containers
CODE-RADE Build-Container
Verwendete Rollen
Dieses Repository enthält den Ansible-Container-Code zum Erstellen der CODE-RADE-Builder-Container. Es verwendet die AAROC.CODE-RADE-container
-Rolle von Ansible Galaxy.
Container
Die Container werden mit Ansible Container erstellt und auf quay.io gespeichert. Wir bauen die folgenden Basis-Images:
Bild | Status |
---|---|
CentOS 6 | |
Ubuntu 14.04 | |
CentOS 7 | |
Ubuntu 16.10 |
Die Container können durch das Herunterladen von quay.io verwendet werden, z. B.:
docker pull quay.io/aaroc/code-rade-ubuntu1610
Der Container fügt einen Benutzer, JDK und einen SSH-Daemon für Jenkins hinzu sowie einige spezielle CODE-RADE-Elemente:
- Das
ci
Modulfile, das einige Variablen festlegt:$SOFT_DIR
: Der Softwareinstallationspfad für die CI-Umgebungsetenv SOFT_DIR /data/ci-build/$::env(SITE)/$::env(OS)/$::env(ARCH)/$::env(NAME)/$::env(VERSION)
$REPO_DIR
: Die erstellten Artefakte (im Tarball) in der CI-Umgebungsetenv REPO_DIR /data/artefacts/$::env(SITE)/$::env(OS)/$::env(ARCH)/$::env(NAME)/$::env(VERSION)
$SRC_DIR
: Der lokale Cache für die Quell-Tarballssetenv SRC_DIR /data/src/$::env(NAME)/$::env(VERSION)
$MODULES
: Der Pfad zu den Moduldateien für die CI-Umgebungset MODULES /data/modules
- Das
deploy
Modulfile, das dieselben Variablen festlegt, außer dass das Wurzelverzeichnis von$SOFT_DIR
unter/cvmfs
liegt. - Ein Datencontainer (
CODE-RADE-data
), der genutzt wird, um die Daten von Build zu Build zu speichern und die Builds portabel zu machen.
Die Datencontainer
Wir verwenden das Datencontainer-Muster, um die Persistenz der Build-Artefakte über verschiedene Jobs hinweg zu gewährleisten. Diese sind im container.yml
nur für Docker angegeben.
So bauen Sie
Um die Container zu erstellen, können Sie einfach Folgendes tun:
ansible-container --project-name code-rade build --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/ --use-local-python
Hochladen in das Image-Repository
Die container.yml
enthält die Spezifikation für die verwendeten Repositories. Standardmäßig verwenden wir Quay. Um das erstellte Image in ein Repository hochzuladen, sodass es von einem anderen Build-Standort verwendet werden kann, führen Sie Folgendes aus:
ansible-container --project-name code-rade push --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/ --push-to quay --tag latest
Ausführen
Diese Container sind so konzipiert, dass sie automatisch von einem CI-System bereitgestellt werden. Der Standard-Entrypoint ist SSH auf Port 5200.
Sie können sie auch lokal zum Testen von Builds verwenden. Um sie auszuführen, tun Sie Folgendes:
ansible-container --project-name code-rade run --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/
Dann loggen Sie sich in den laufenden Container ein:
ssh jenkins@172.17.0.2 -p 5200
Bereitstellung
Wie bereits erwähnt, sind diese Container für die Bereitstellung aus CI-Umgebungen gedacht. Wenn Sie wirklich einen statischen Build-Cluster betreiben möchten, können Sie den Befehl --deploy
von Ansible Container verwenden. Weitere Informationen zu Bereitstellungsoptionen finden Sie unter https://docs.ansible.com/ansible-container/reference/deploy.html.
Zitieren
Wenn Sie Forschung oder andere Ergebnisse produzieren und diese Container Teil dieses Workflows sind, zitieren Sie bitte
Bruce Becker. (2017). AAROC/CODE-RADE-build-containers: CODE-RADE Foundation Release 3 - Build-Container [Datensatz]. Zenodo. http://doi.org/10.5281/zenodo.572275
ansible-galaxy install AAROC.CODE-RADE-build-containers