diff --git a/inv.yml b/inv.yml index b2dee1f..a1cc558 100644 --- a/inv.yml +++ b/inv.yml @@ -13,3 +13,6 @@ all: slurm: hosts: ed-c7-1: + cobald: + hosts: + ed-c7-1: diff --git a/play.yml b/play.yml index 386b1f1..651c1a2 100644 --- a/play.yml +++ b/play.yml @@ -54,3 +54,9 @@ vars: slurm_user: slurm # or root tags: slurm + +- hosts: cobald + roles: + - name: "install cobald" + role: cobald + tags: cobald diff --git a/roles/cobald/files/cobald.Dockerfile b/roles/cobald/files/cobald.Dockerfile new file mode 100644 index 0000000..cc3b406 --- /dev/null +++ b/roles/cobald/files/cobald.Dockerfile @@ -0,0 +1,37 @@ +FROM docker.io/library/centos:7 + +RUN yum update -y && \ + yum install -y python3 git && pip3 install --upgrade pip && \ + yum clean all && rm -rf /var/cache/yum + +ARG REPOCOBALD=https://github.com/MatterMiners/cobald +ARG REPOTARDIS=https://github.com/MatterMiners/tardis + +RUN git clone $REPOCOBALD /usr/local/src/cobald && \ + git clone $REPOTARDIS /usr/local/src/tardis + +#RUN mkdir /cobald && python3 -m venv /cobald && source /cobald/bin/activate &&\ +# pip3 install --upgrade pip && pip3 install cobald + +# FIXME: run this as user! + +RUN pip3 install --editable /usr/local/src/cobald && \ + pip3 install --editable /usr/local/src/cobald[contrib] + +RUN pip3 install --editable /tardis&& \ + pip3 install --editable /tardis[contrib] + +RUN mkdir /etc/cobald /var/log/cobald && \ + useradd -m -d /var/lib/cobald --no-log-init --system cobald + +VOLUME /etc/cobald + +USER cobald + +ENV PYTHONPATH=/etc/cobald/modules + +# pip3 install --editable . +# pip3 install --editable .[contrib] +# pip3 install --upgrade --editable /etc/cobald/modules/ +# su cobald -c "python3 -m cobald.daemon /etc/cobald/config.yaml" +CMD python3 -m cobald.daemon /etc/cobald/config.yaml diff --git a/roles/cobald/tasks/dev.yml b/roles/cobald/tasks/dev.yml new file mode 100644 index 0000000..b174a99 --- /dev/null +++ b/roles/cobald/tasks/dev.yml @@ -0,0 +1,26 @@ +- yum: + name: git + state: present + +- git: + repo: https://github.com/thoto/cobald + dest: "~{{unpriv_user}}/cobald-src" + version: bugfix/mixed_construction_methods + +- git: + repo: https://github.com/MatterMiners/tardis + dest: "~{{unpriv_user}}/tardis-src" + version: master + +- docker_container: + name: cobald-dev + image: cobald + volumes: + - "~{{unpriv_user}}/cobald:/etc/cobald" + - "~{{unpriv_user}}/cobald-src:/cobald:ro" + - "~{{unpriv_user}}/tardis-src:/tardis:ro" + state: started + detach: True + cleanup: True + interactive: True + command: /bin/bash diff --git a/roles/cobald/tasks/main.yml b/roles/cobald/tasks/main.yml new file mode 100644 index 0000000..cfff52d --- /dev/null +++ b/roles/cobald/tasks/main.yml @@ -0,0 +1,45 @@ +- file: + path: "/container/{{item}}/cobald/" + state: directory + owner: "{{unpriv_user}}" + group: docker + loop: + - docker-images + - volumes + +- copy: + src: cobald.Dockerfile + dest: /container/docker-images/cobald/Dockerfile + owner: "{{unpriv_user}}" + group: docker + register: cobald_cp_dockerfile + +- docker_image: + name: "cobald" +# pull: False + build: + pull: False + path: "/container/docker-images/cobald/" + source: build + force_source: "{{cobald_cp_dockerfile.changed }}" + +- copy: + src: cobald-config/ + dest: /container/volumes/cobald + owner: "{{unpriv_user}}" + group: docker + when: False + +# docker run -v $(pwd)/cobald-config-host:/etc/cobald -v $(pwd)/cobald:/cobald --rm -it cobald bash + +- docker_container: + name: cobald + image: cobald + volumes: + - /container/volumes/cobald:/etc/cobald:ro + state: started + detach: True + cleanup: True + when: False + +- include_tasks: dev.yml