146 lines
4.0 KiB
YAML
146 lines
4.0 KiB
YAML
- include_vars: cobald-slurm.yml
|
|
when: cobald_slurm | default(False)
|
|
|
|
# FIXME: replace below by
|
|
# - include_role: slurm
|
|
# tasks_from: dockerimage
|
|
- file:
|
|
path: "/container/{{item.name}}/cobald{{item.pfx|default('')}}/"
|
|
state: directory
|
|
owner: "{{unpriv_user}}"
|
|
group: docker
|
|
loop:
|
|
- name: docker-images
|
|
pfx: ".{{cobald_image_tag|default('latest')}}"
|
|
- name: volumes
|
|
|
|
- template:
|
|
src: cobald.Dockerfile
|
|
dest: "/container/docker-images/cobald.{{cobald_image_tag|default('latest')}}/Dockerfile"
|
|
owner: "{{unpriv_user}}"
|
|
group: docker
|
|
register: cobald_cp_dockerfile
|
|
|
|
- copy:
|
|
src: "{{item}}"
|
|
dest: "/container/docker-images/cobald.{{cobald_image_tag|default('latest')}}/{{item}}"
|
|
owner: "{{unpriv_user}}"
|
|
group: docker
|
|
mode: 0755
|
|
with_items:
|
|
- cobald-entrypoint.sh
|
|
- init-cobaldmodules.sh
|
|
register: cobald_cp_files
|
|
|
|
- docker_image:
|
|
name: "cobald"
|
|
tag: "{{cobald_image_tag|default('latest')}}"
|
|
# pull: False
|
|
build:
|
|
pull: False
|
|
path: "/container/docker-images/cobald.{{cobald_image_tag|default('latest')}}/"
|
|
source: build
|
|
force_source: "{{cobald_cp_dockerfile.changed or cobald_cp_files.changed}}"
|
|
|
|
- copy:
|
|
src: cobald-config/
|
|
dest: /container/volumes/cobald
|
|
owner: "{{unpriv_user}}"
|
|
group: docker
|
|
when: False
|
|
|
|
- docker_network:
|
|
name: "{{cobald_docker_network}}" # FIXME
|
|
state: present
|
|
|
|
# docker run -v $(pwd)/cobald-config-host:/etc/cobald -v $(pwd)/cobald:/cobald --rm -it cobald bash
|
|
|
|
- yum:
|
|
name: git
|
|
state: present
|
|
|
|
- file:
|
|
path: "{{item}}"
|
|
owner: "{{unpriv_user}}"
|
|
group: "{{unpriv_user}}"
|
|
mode: "a=rx,u=rwx"
|
|
state: directory
|
|
with_items:
|
|
- "~{{unpriv_user}}/cobald/modules"
|
|
- "~{{unpriv_user}}/cobald"
|
|
|
|
- git:
|
|
repo: https://github.com/thoto/cobald
|
|
dest: "~{{unpriv_user}}/cobald-src"
|
|
version: bugfix/mixed_construction_methods
|
|
update: no
|
|
become: yes
|
|
become_user: "{{unpriv_user}}"
|
|
register: cobald_git_pull
|
|
|
|
- git:
|
|
repo: https://github.com/MatterMiners/tardis
|
|
dest: "~{{unpriv_user}}/tardis-src"
|
|
version: master
|
|
become: yes
|
|
become_user: "{{unpriv_user}}"
|
|
register: tardis_git_pull
|
|
|
|
- name: "get unpriv_user {{unpriv_user}} uid and gid"
|
|
getent:
|
|
database: passwd
|
|
key: "{{unpriv_user}}"
|
|
|
|
- name: run pip install
|
|
docker_container:
|
|
image: "cobald:{{cobald_image_tag|default('latest')}}"
|
|
name: "cobald-src-{{item.name}}-install"
|
|
volumes:
|
|
- "~{{unpriv_user}}/{{item.name}}-src:/usr/local/src/{{item.name}}:rw"
|
|
state: started
|
|
detach: False
|
|
cleanup: True
|
|
user: "{{getent_passwd[unpriv_user][1]}}:{{getent_passwd[unpriv_user][2]}}"
|
|
entrypoint: ""
|
|
command: |
|
|
bash -c 'HOME=/tmp pip3 install --editable /usr/local/src/{{item.name}}'
|
|
with_items:
|
|
- name: cobald
|
|
run: "{{cobald_git_pull.changed}}"
|
|
- name: tardis
|
|
run: "{{tardis_git_pull.changed}}"
|
|
when: item.run
|
|
|
|
- import_tasks: telegraf.yml
|
|
|
|
- name: get cobald hostname
|
|
include_tasks: facts.yml
|
|
when: cobald_container_hostname is not defined
|
|
|
|
- name: run cobald container
|
|
docker_container:
|
|
name: "{{ container_name | default('cobald') }}"
|
|
image: "cobald:{{cobald_image_tag|default('latest')}}"
|
|
hostname: "{{cobald_container_hostname}}"
|
|
domainname: "{{ cobald_domainname | default('cobald.local')}}"
|
|
volumes: "{{default_mounts + cobald_mounts }}"
|
|
networks:
|
|
- name: "{{cobald_docker_network}}"
|
|
networks_cli_compatible: True
|
|
# env:
|
|
# slurmuser: "{{slurm_user}}"
|
|
# privileged: "{{ container_privileged | bool }}"
|
|
state: started
|
|
detach: True
|
|
cleanup: True
|
|
interactive: True
|
|
# command: python3 -m cobald.daemon /etc/cobald/config.yaml
|
|
vars:
|
|
default_mounts: "{{cobald_slurm_mounts | default([])}}"
|
|
cobald_mounts:
|
|
- "~{{unpriv_user}}/cobald:/etc/cobald"
|
|
# - /container/volumes/cobald:/etc/cobald:ro
|
|
- "~{{unpriv_user}}/cobald/modules:/usr/local/src/cobaldmodules"
|
|
- "~{{unpriv_user}}/cobald-src:/usr/local/src/cobald:ro"
|
|
- "~{{unpriv_user}}/tardis-src:/usr/local/src/tardis:ro"
|