AAROC.CODE-RADE-build-containers
CODE-RADE 构建容器
使用的角色
该仓库包含用于构建 CODE-RADE 构建从属容器的 Ansible-Container 代码。它使用了来自 Ansible Galaxy 的 AAROC.CODE-RADE-container
角色。
容器
这些容器使用 Ansible Container 构建,并存储在 quay.io。我们构建了以下基础镜像:
镜像 | 状态 |
---|---|
CentOS 6 | |
Ubuntu 14.04 | |
CentOS 7 | |
Ubuntu 16.10 |
这些容器可以通过从 quay.io 拉取来使用,例如:
docker pull quay.io/aaroc/code-rade-ubuntu1610
容器中添加了一个用户、JDK 和 Jenkins 的 SSH Daemon,以及一些 CODE-RADE 的秘密配置:
ci
模块文件,设置了一些变量:$SOFT_DIR
:CI 环境的软件安装路径setenv SOFT_DIR /data/ci-build/$::env(SITE)/$::env(OS)/$::env(ARCH)/$::env(NAME)/$::env(VERSION)
$REPO_DIR
:CI 环境中构建的工件(以 tarball 形式)setenv REPO_DIR /data/artefacts/$::env(SITE)/$::env(OS)/$::env(ARCH)/$::env(NAME)/$::env(VERSION)
$SRC_DIR
:源 tarball 的本地缓存setenv SRC_DIR /data/src/$::env(NAME)/$::env(VERSION)
$MODULES
:CI 环境中模块文件的路径set MODULES /data/modules
deploy
模块文件,设置与上述相同的变量,但$SOFT_DIR
的根目录位于/cvmfs
下- 一个数据容器 (
CODE-RADE-data
) 用于在构建之间持久化数据,并使构建具有可移植性。
数据容器
我们使用 数据容器模式 来提供构建工件的持久化,跨作业使用。这些在仅针对 Docker 的 container.yml
中表达。
构建
要构建容器,只需执行:
ansible-container --project-name code-rade build --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/ --use-local-python
推送到镜像注册处
container.yml
中包含了使用的注册表的规范。我们默认使用 quay。要将构建的镜像推送到注册表,以便另一个构建站点能使用,执行:
ansible-container --project-name code-rade push --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/ --push-to quay --tag latest
运行
这些容器旨在由 CI 系统自动配置。默认的入口点为端口 5200 上的 SSH。
您可以用它们在本地检查构建。要运行它们,请执行:
ansible-container --project-name code-rade run --roles-path /home/becker/Ops/AAROC/DevOps/Ansible/roles/
然后通过 SSH 连接到正在运行的容器:
ssh jenkins@172.17.0.2 -p 5200
部署
如前所述,这些容器是用于从 CI 环境中进行配置的。如果您确实想要运行一个静态构建集群,可以使用 Ansible Container 的 --deploy
命令。有关部署选项,请参见 https://docs.ansible.com/ansible-container/reference/deploy.html
引用
如果您产生了研究或其他输出,而这些容器是该工作流程的一部分,请引用如下:
Bruce Becker. (2017). AAROC/CODE-RADE-build-containers: CODE-RADE Foundation Release 3 - Build Containers [数据集]. Zenodo. http://doi.org/10.5281/zenodo.572275
ansible-galaxy install AAROC.CODE-RADE-build-containers