merged slurm_dockerimage back into slurm role
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
- include_vars: cobald-slurm.yml
|
- include_vars: cobald-slurm.yml
|
||||||
when: cobald_slurm | default(False)
|
when: cobald_slurm | default(False)
|
||||||
|
|
||||||
|
# FIXME: replace below by
|
||||||
|
# - include_role: slurm
|
||||||
|
# tasks_from: dockerimage
|
||||||
- file:
|
- file:
|
||||||
path: "/container/{{item.name}}/cobald{{item.pfx|default('')}}/"
|
path: "/container/{{item.name}}/cobald{{item.pfx|default('')}}/"
|
||||||
state: directory
|
state: directory
|
||||||
|
@@ -1,50 +1,24 @@
|
|||||||
- file:
|
- name: build slurm base docker image
|
||||||
path: "/container/docker-images/slurm"
|
include_tasks: dockerimage_build.yml
|
||||||
state: directory
|
vars:
|
||||||
owner: "{{unpriv_user}}"
|
image_name: base
|
||||||
group: docker
|
dockerfile: slurm-base.Dockerfile
|
||||||
|
files:
|
||||||
- copy: # FIXME: template
|
- dest: entrypoint.sh
|
||||||
src: "{{image.name}}.Dockerfile"
|
content: "{{ lookup('file', 'entrypoint.sh') }}"
|
||||||
dest: "/container/docker-images/slurm/{{image.name}}.Dockerfile"
|
- dest: entry-munge.sh
|
||||||
owner: "{{unpriv_user}}"
|
content: "{{ lookup('file', 'entry-munge.sh') }}"
|
||||||
group: docker
|
- dest: docker-init
|
||||||
register: slurm_cp_dockerfile
|
content: "{{ lookup('file', 'docker-init') }}"
|
||||||
|
- dest: start-scripts/10-munge
|
||||||
- name: copy entrypoint and docker-init
|
content: "{{ lookup('file', 'start-scripts/10-munge') }}"
|
||||||
copy: # FIXME: swap out
|
register: slurm_baseimg_build
|
||||||
src: "{{item}}"
|
when: not slurm_baseimg_build_chg | default(False)
|
||||||
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:
|
- set_fact:
|
||||||
slurm_image_files_changed: "{{ (slurm_image_files_changed | default(False))
|
slurm_baseimg_build_chg:
|
||||||
or slurm_cp_entrypt.changed or slurm_cp_stscrs.changed }}"
|
"{{(slurm_baseimg_build_chg | default(False)) or
|
||||||
|
slurm_baseimg_build.changed}}"
|
||||||
- docker_image:
|
|
||||||
name: "slurm"
|
|
||||||
tag: "{{image.name}}"
|
|
||||||
# pull: False
|
|
||||||
build:
|
|
||||||
pull: False
|
|
||||||
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_image_files_changed}}"
|
|
||||||
|
|
||||||
|
- name: "build slurm base docker image {{name}}"
|
||||||
|
include_tasks: dockerimage_build.yml
|
||||||
|
@@ -1,16 +1,16 @@
|
|||||||
- name: create directories for docker image build
|
- name: create directories for docker image build
|
||||||
file:
|
file:
|
||||||
path: "/container/docker-images/slurm-{{image.name}}/{{item}}"
|
path: "/container/docker-images/slurm-{{image_name}}/{{item}}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{unpriv_user}}"
|
owner: "{{unpriv_user}}"
|
||||||
group: docker
|
group: docker
|
||||||
loop: "{{ [''] + (image.files | map(attribute='dest') | map('dirname') |
|
loop: "{{ [''] + (files | map(attribute='dest') | map('dirname') |
|
||||||
unique | select | list) }}"
|
unique | select | list) }}"
|
||||||
|
|
||||||
- name: copy Dockerfile
|
- name: copy Dockerfile
|
||||||
copy:
|
copy:
|
||||||
src: "{{image.name}}.Dockerfile"
|
src: "{{image_name}}.Dockerfile"
|
||||||
dest: "/container/docker-images/slurm-{{image.name}}/Dockerfile"
|
dest: "/container/docker-images/slurm-{{image_name}}/Dockerfile"
|
||||||
owner: "{{unpriv_user}}"
|
owner: "{{unpriv_user}}"
|
||||||
group: docker
|
group: docker
|
||||||
register: slurm_cp_dockerfile
|
register: slurm_cp_dockerfile
|
||||||
@@ -18,23 +18,23 @@
|
|||||||
- name: copy requisite files
|
- name: copy requisite files
|
||||||
copy:
|
copy:
|
||||||
content: "{{ item.content }}"
|
content: "{{ item.content }}"
|
||||||
dest: "/container/docker-images/slurm-{{image.name}}/{{item.dest}}"
|
dest: "/container/docker-images/slurm-{{image_name}}/{{item.dest}}"
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: u=rwx,g=rx,o=rx
|
mode: u=rwx,g=rx,o=rx
|
||||||
loop: "{{ image.files | default([]) }}"
|
loop: "{{ files | default([]) }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.dest }}"
|
label: "{{ item.dest }}"
|
||||||
register: slurm_cp_files
|
register: slurm_cp_files
|
||||||
|
|
||||||
- docker_image:
|
- docker_image:
|
||||||
name: "slurm"
|
name: "slurm"
|
||||||
tag: "{{image.name}}"
|
tag: "{{image_name}}"
|
||||||
# pull: False
|
# pull: False
|
||||||
build:
|
build:
|
||||||
pull: False
|
pull: False
|
||||||
path: "/container/docker-images/slurm-{{image.name}}/"
|
path: "/container/docker-images/slurm-{{image_name}}/"
|
||||||
source: build
|
source: build
|
||||||
force_source: "{{slurm_cp_dockerfile.changed or
|
force_source: "{{slurm_cp_dockerfile.changed or
|
||||||
slurm_cp_files.changed or
|
slurm_cp_files.changed or
|
||||||
slurm_baseimg_build_chg }}"
|
slurm_baseimg_build_chg | default(False) }}"
|
@@ -3,9 +3,9 @@
|
|||||||
name: [ slurm, slurm-doc ]
|
name: [ slurm, slurm-doc ]
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- include_role:
|
- include_tasks:
|
||||||
name: slurm_dockerimage
|
file: dockerimage.yml
|
||||||
loop: # FIXME: default(omit)!
|
loop:
|
||||||
- name: slurmctld
|
- name: slurmctld
|
||||||
dockerfile: "{{ lookup('file', 'slurmctld.Dockerfile') }}"
|
dockerfile: "{{ lookup('file', 'slurmctld.Dockerfile') }}"
|
||||||
files:
|
files:
|
||||||
@@ -16,6 +16,10 @@
|
|||||||
files:
|
files:
|
||||||
- dest: start-scripts/30-slurmd
|
- dest: start-scripts/30-slurmd
|
||||||
content: "{{ lookup('file', 'start-scripts/30-slurmd') }}"
|
content: "{{ lookup('file', 'start-scripts/30-slurmd') }}"
|
||||||
|
vars:
|
||||||
|
image_name: "{{image.name | default(omit) }}"
|
||||||
|
dockerfile: "{{image.dockerfile | default(omit) }}"
|
||||||
|
files: "{{image.files | default(omit) }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: image
|
loop_var: image
|
||||||
label: "{{ image.name }}"
|
label: "{{ image.name }}"
|
||||||
|
@@ -1,46 +0,0 @@
|
|||||||
- file:
|
|
||||||
path: "/container/docker-images/slurm-base/start-scripts"
|
|
||||||
state: directory
|
|
||||||
owner: "{{unpriv_user}}"
|
|
||||||
group: docker
|
|
||||||
|
|
||||||
# - name: copy Dockerfile, entrypoint, docker-init and munge startup
|
|
||||||
- name: copy slurm base image requisite files
|
|
||||||
copy: # FIXME: swap out
|
|
||||||
src: "{{item.file}}"
|
|
||||||
dest: "/container/docker-images/slurm-base/{{item.file}}"
|
|
||||||
owner: "{{unpriv_user}}"
|
|
||||||
group: docker
|
|
||||||
mode: "{{ item.perms | default('u=rwx,g=rx,o=rx') }}"
|
|
||||||
loop:
|
|
||||||
- file: slurm-base.Dockerfile
|
|
||||||
perms: u=rw,g=r,o=r
|
|
||||||
- file: entrypoint.sh
|
|
||||||
- file: entry-munge.sh
|
|
||||||
- file: docker-init
|
|
||||||
- file: start-scripts/10-munge
|
|
||||||
when: not (slurm_baseimg_build_chg | default(False))
|
|
||||||
register: slurm_baseimg_copy
|
|
||||||
|
|
||||||
- name: build base image
|
|
||||||
docker_image:
|
|
||||||
name: "slurm"
|
|
||||||
tag: "base"
|
|
||||||
# pull: False
|
|
||||||
build:
|
|
||||||
pull: False
|
|
||||||
path: "/container/docker-images/slurm-base/"
|
|
||||||
dockerfile: "slurm-base.Dockerfile"
|
|
||||||
# target: "{{image.name}}" # unsupported on old docker-py version as in el7
|
|
||||||
source: build
|
|
||||||
force_source: "{{slurm_baseimg_copy.changed}}"
|
|
||||||
# when: run only once but keep changed state
|
|
||||||
when: not (slurm_baseimg_build_chg | default(False))
|
|
||||||
register: slurm_baseimg_build
|
|
||||||
|
|
||||||
- set_fact:
|
|
||||||
slurm_baseimg_build_chg:
|
|
||||||
"{{(slurm_baseimg_build_chg | default(False)) or
|
|
||||||
slurm_baseimg_build.changed}}"
|
|
||||||
|
|
||||||
- include_tasks: dockerimage.yml
|
|
Reference in New Issue
Block a user