AAROC.CODE-RADE-build-containers

DOI
Lizenz Build-Status

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 Docker-Repository auf Quay
Ubuntu 14.04 Docker-Repository auf Quay
CentOS 7 Docker-Repository auf Quay
Ubuntu 16.10 Docker-Repository auf Quay

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-Umgebung
      setenv 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-Umgebung
      setenv REPO_DIR /data/artefacts/$::env(SITE)/$::env(OS)/$::env(ARCH)/$::env(NAME)/$::env(VERSION)
    • $SRC_DIR: Der lokale Cache für die Quell-Tarballs
      setenv SRC_DIR /data/src/$::env(NAME)/$::env(VERSION)
    • $MODULES: Der Pfad zu den Moduldateien für die CI-Umgebung
      set 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

Über das Projekt

Describe your awesome application here.

Installieren
ansible-galaxy install AAROC.CODE-RADE-build-containers
GitHub Repository
Lizenz
apache-2.0
Downloads
183