new startup for cobald containers

This commit is contained in:
2021-06-17 14:55:21 +02:00
parent cc43a39ea3
commit 6eb6984d6a
10 changed files with 102 additions and 33 deletions

View File

@@ -1,31 +1,50 @@
- file:
path: "/container/docker-images/{{item}}"
path: "/container/docker-images/slurm"
state: directory
owner: "{{unpriv_user}}"
group: docker
- copy:
src: "{{item}}.Dockerfile"
dest: "/container/docker-images/{{item}}/Dockerfile"
- copy: # FIXME: template
src: "{{image.name}}.Dockerfile"
dest: "/container/docker-images/slurm/{{image.name}}.Dockerfile"
owner: "{{unpriv_user}}"
group: docker
register: slurm_cp_dockerfile
- copy:
src: "entrypoint.sh"
dest: "/container/docker-images/{{item}}/entrypoint.sh"
- name: copy entrypoint and docker-init
copy: # FIXME: swap out
src: "{{item}}"
dest: "/container/docker-images/slurm/{{item}}"
owner: root
group: root
mode: u=rwx,g=rx,o=rx
loop:
- entrypoint.sh
- docker-init
register: slurm_cp_entrypt
- name: copy startup scripts
copy:
src: "start-scripts/"
dest: "/container/docker-images/slurm/start-scripts/"
owner: root
group: root
mode: u=rwx,g=rx,o=rx
register: slurm_cp_stscrs
- set_fact:
slurm_image_files_changed: "{{ (slurm_image_files_changed | default(False))
or slurm_cp_entrypt.changed or slurm_cp_stscrs.changed }}"
- docker_image:
name: "slurm-{{item}}"
name: "slurm"
tag: "{{image.name}}"
# pull: False
build:
pull: False
path: "/container/docker-images/{{item}}"
# target: "{{item}}" # unsupported on old docker-py versions as in el7
path: "/container/docker-images/slurm/"
dockerfile: "{{image.name}}.Dockerfile"
# target: "{{image.name}}" # unsupported on old docker-py version as in el7
source: build
force_source: "{{slurm_cp_dockerfile.changed or slurm_cp_entrypt.changed}}"
force_source: "{{slurm_cp_dockerfile.changed or slurm_image_files_changed}}"

View File

@@ -5,8 +5,17 @@
- include_tasks: dockerimage.yml
loop:
- slurmctld
- slurmd
- name: slurmctld
start:
- 10-munge
- 20-slurmctld
- name: slurmd
start:
- 10-munge
- 30-slurmd
loop_control:
loop_var: image
label: "{{ image.name }}"
- name: generate munge key
shell:
@@ -63,13 +72,14 @@
- set_fact:
slurm_nodes: # default nodes: controller and submit machine
- machine: ctl
image: slurm-slurmctld
image: slurm:slurmctld
exposed_ports: [ "6817:6817/tcp" ]
- machine: submit1
image: slurm-slurmd
image: slurm:slurmd
extra_mounts:
- "/home/{{unpriv_user}}/job3/:/mnt/:rw"
tags: [ slurm-config ]
# TODO: reserve some address using docker_network_info and assign as aux
# address to enable slurmctld to get a static address in order to be
# reachable from slurm running on docker host to enable submitting jobs.
@@ -80,6 +90,7 @@
hostname: "slurm-{{item.machine}}"
domainname: "slurm.local"
volumes: "{{default_mounts + ( item.extra_mounts | default([]) ) }}"
ports: "{{ item.exposed_ports | default([]) }}"
networks:
- name: "slurm"
env:
@@ -90,15 +101,16 @@
cleanup: True
privileged: "{{ container_privileged | bool }}"
networks_cli_compatible: True
interactive: True
vars:
default_mounts:
- /container/volumes/slurm/:/etc/slurm/:rw
- /container/volumes/munge/munge.key:/etc/munge/munge.key:rw
- slurm-shared:/shared/:rw
slurm_nodes_all: | # add execute nodes
{% for i in range(1, 4) -%}
{% for i in range(1, num_nodes+1) -%}
{% set _ = slurm_nodes.extend([
{'machine':'exec%s'|format(i), 'image': 'slurm-slurmd'}]) -%}
{'machine':'exec%s'|format(i), 'image': 'slurm:slurmd'}]) -%}
{%- endfor %}
{{ slurm_nodes }}
loop: "{{slurm_nodes_all}}"