build cobald image from slurm role, separated tags
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
- name: build slurm base docker image
|
||||
include_tasks: dockerimage_build.yml
|
||||
vars:
|
||||
slurm_image_prefix: "{{slurm_base_image_prefix | default('slurm') }}"
|
||||
image_name: base
|
||||
dockerfile: slurm-base.Dockerfile
|
||||
dockerfile: "{{lookup('file', 'slurm-base.Dockerfile')}}"
|
||||
files:
|
||||
- dest: entrypoint.sh
|
||||
content: "{{ lookup('file', 'entrypoint.sh') }}"
|
||||
@@ -20,5 +21,5 @@
|
||||
"{{(slurm_baseimg_build_chg | default(False)) or
|
||||
slurm_baseimg_build.changed}}"
|
||||
|
||||
- name: "build slurm base docker image {{name}}"
|
||||
- name: "build slurm base docker image {{image_name}}"
|
||||
include_tasks: dockerimage_build.yml
|
||||
|
@@ -1,16 +1,16 @@
|
||||
- name: create directories for docker image build
|
||||
file:
|
||||
path: "/container/docker-images/slurm-{{image_name}}/{{item}}"
|
||||
path: "/container/docker-images/{{slurm_image_prefix}}-{{image_name}}/{{item}}"
|
||||
state: directory
|
||||
owner: "{{unpriv_user}}"
|
||||
group: docker
|
||||
loop: "{{ [''] + (files | map(attribute='dest') | map('dirname') |
|
||||
unique | select | list) }}"
|
||||
|
||||
- name: copy Dockerfile
|
||||
- name: "copy Dockerfile {{slurm_image_prefix}}:{{image_name}}"
|
||||
copy:
|
||||
src: "{{image_name}}.Dockerfile"
|
||||
dest: "/container/docker-images/slurm-{{image_name}}/Dockerfile"
|
||||
content: "{{dockerfile}}"
|
||||
dest: "/container/docker-images/{{slurm_image_prefix}}-{{image_name}}/Dockerfile"
|
||||
owner: "{{unpriv_user}}"
|
||||
group: docker
|
||||
register: slurm_cp_dockerfile
|
||||
@@ -18,7 +18,7 @@
|
||||
- name: copy requisite files
|
||||
copy:
|
||||
content: "{{ item.content }}"
|
||||
dest: "/container/docker-images/slurm-{{image_name}}/{{item.dest}}"
|
||||
dest: "/container/docker-images/{{slurm_image_prefix}}-{{image_name}}/{{item.dest}}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: u=rwx,g=rx,o=rx
|
||||
@@ -27,13 +27,14 @@
|
||||
label: "{{ item.dest }}"
|
||||
register: slurm_cp_files
|
||||
|
||||
- docker_image:
|
||||
name: "slurm"
|
||||
- name: "build docker image {{slurm_image_prefix}}:{{image_name}}"
|
||||
docker_image:
|
||||
name: "{{slurm_image_prefix}}"
|
||||
tag: "{{image_name}}"
|
||||
# pull: False
|
||||
build:
|
||||
pull: False
|
||||
path: "/container/docker-images/slurm-{{image_name}}/"
|
||||
path: "/container/docker-images/{{slurm_image_prefix}}-{{image_name}}/"
|
||||
source: build
|
||||
force_source: "{{slurm_cp_dockerfile.changed or
|
||||
slurm_cp_files.changed or
|
||||
|
@@ -3,7 +3,8 @@
|
||||
name: [ slurm, slurm-doc ]
|
||||
state: present
|
||||
|
||||
- include_tasks:
|
||||
- name: build docker images for slurm
|
||||
include_tasks:
|
||||
file: dockerimage.yml
|
||||
loop:
|
||||
- name: slurmctld
|
||||
@@ -36,7 +37,8 @@
|
||||
group: munge
|
||||
mode: u=rw,g=,o=
|
||||
|
||||
- file:
|
||||
- name: create munge key directory for containers
|
||||
file:
|
||||
path: /container/volumes/munge
|
||||
state: directory
|
||||
owner: munge
|
||||
@@ -51,7 +53,8 @@
|
||||
src: /etc/munge/munge.key
|
||||
dest: /container/volumes/munge/munge.key
|
||||
|
||||
- file:
|
||||
- name: make slurm directory
|
||||
file:
|
||||
path: /container/volumes/slurm/
|
||||
state: directory
|
||||
|
||||
@@ -78,29 +81,6 @@
|
||||
name: slurm-shared
|
||||
state: present
|
||||
|
||||
- set_fact:
|
||||
slurm_nodes_std: # default nodes: controller and submit machine
|
||||
- machine: ctl
|
||||
image: slurm:slurmctld
|
||||
exposed_ports: [ "6817:6817/tcp" ]
|
||||
- machine: submit1
|
||||
image: slurm:slurmd
|
||||
extra_mounts:
|
||||
- "/home/{{unpriv_user}}/job3/:/mnt/:rw"
|
||||
slurm_nodes_exec: | # extend range to execute nodes list
|
||||
{% set slurm_nodes_exec = slurm_nodes_exec | default([]) %}
|
||||
{% for i in range(1, num_nodes+1) -%}
|
||||
{% set _ = slurm_nodes_exec.extend([
|
||||
{'machine':'exec%s'|format(i), 'image': 'slurm:slurmd'}]) -%}
|
||||
{%- endfor %}
|
||||
{{ slurm_nodes_exec }}
|
||||
slurm_default_mounts:
|
||||
- /container/volumes/slurm/:/etc/slurm/:rw
|
||||
- /container/volumes/munge/munge.key:/etc/munge/munge.key:rw
|
||||
- slurm-shared:/shared/:rw
|
||||
slurm_network: "{{docker_network}}"
|
||||
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.
|
||||
@@ -113,7 +93,7 @@
|
||||
volumes: "{{ slurm_default_mounts + ( item.extra_mounts | default([]) ) }}"
|
||||
ports: "{{ item.exposed_ports | default([]) }}"
|
||||
networks:
|
||||
- name: "{{ slurm_network }}"
|
||||
- name: "{{ docker_network }}"
|
||||
env:
|
||||
slurmuser: "{{ slurm_user }}"
|
||||
image: "{{ item.image }}"
|
||||
@@ -123,14 +103,14 @@
|
||||
privileged: "{{ container_privileged | bool }}"
|
||||
networks_cli_compatible: True
|
||||
interactive: True
|
||||
vars:
|
||||
vars: # see vars/main.yml
|
||||
slurm_nodes_all: "{{ slurm_nodes_exec + slurm_nodes_std }}"
|
||||
loop: "{{ slurm_nodes_all }}"
|
||||
loop_control:
|
||||
label: "{{slurm_prefix}}-{{ item.machine }}"
|
||||
tags: [ slurm-config ]
|
||||
|
||||
- name: set facts to be used by other modules
|
||||
- name: export facts about slurm cluster to be used by other modules
|
||||
set_fact:
|
||||
slurm:
|
||||
user: "{{slurm_user}}"
|
||||
@@ -138,3 +118,4 @@
|
||||
base_image: "slurm:base"
|
||||
mounts: "{{slurm_default_mounts}}"
|
||||
network: "{{docker_network}}"
|
||||
tags: always
|
||||
|
Reference in New Issue
Block a user