merged slurm_dockerimage back into slurm role

This commit is contained in:
2021-06-22 00:26:00 +02:00
parent f83801cb62
commit 78850d4636
9 changed files with 40 additions and 105 deletions

View File

@@ -0,0 +1,31 @@
FROM docker.io/library/centos:7
RUN yum install -y epel-release && \
yum install -y slurm && \
yum clean all && rm -rf /var/cache/yum
RUN yum install -y less iproute bind-utils nmap-ncat net-tools && \
yum clean all && rm -rf /var/cache/yum
RUN mkdir -p /usr/local/lib/entrypoints.d/
COPY --chown=root:root entry-munge.sh /usr/local/lib/entrypoints.d/10-munge.sh
COPY --chown=root:root entrypoint.sh /usr/local/sbin/entrypoint.sh
RUN chmod 755 /usr/local/lib/entrypoints.d/10-munge.sh && \
chmod 755 /usr/local/sbin/entrypoint.sh
ENTRYPOINT [ "/usr/local/sbin/entrypoint.sh" ]
ARG slurmuser=slurm
ENV slurmuser=${slurmuser}
RUN useradd -d /var/lib/slurm -m --no-log-init --system $slurmuser &&\
slurm-setuser -u $slurmuser -g $slurmuser -y
COPY docker-init /usr/local/sbin/docker-init
RUN mkdir /etc/docker-init.d && chmod 755 /usr/local/sbin/docker-init
COPY start-scripts/10-munge /etc/docker-init.d/10-munge
RUN chmod 755 /etc/docker-init.d/10-munge
CMD /usr/local/sbin/docker-init

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -e
if [ -f "/etc/munge/munge.key" ] ; then
chown munge:munge /etc/munge/munge.key
chmod 600 /etc/munge/munge.key
fi

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -e
for i in /usr/local/lib/entrypoints.d/* ; do
[ -f $i ] && /bin/sh $i || break
done
exec "${@:-/bin/bash}"

View File

@@ -0,0 +1,2 @@
#!/bin/sh
exec su -s /bin/sh -c "munged -F" munge

View File

@@ -1,50 +1,24 @@
- file:
path: "/container/docker-images/slurm"
state: directory
owner: "{{unpriv_user}}"
group: docker
- copy: # FIXME: template
src: "{{image.name}}.Dockerfile"
dest: "/container/docker-images/slurm/{{image.name}}.Dockerfile"
owner: "{{unpriv_user}}"
group: docker
register: slurm_cp_dockerfile
- 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
- name: build slurm base docker image
include_tasks: dockerimage_build.yml
vars:
image_name: base
dockerfile: slurm-base.Dockerfile
files:
- dest: entrypoint.sh
content: "{{ lookup('file', 'entrypoint.sh') }}"
- dest: entry-munge.sh
content: "{{ lookup('file', 'entry-munge.sh') }}"
- dest: docker-init
content: "{{ lookup('file', 'docker-init') }}"
- dest: start-scripts/10-munge
content: "{{ lookup('file', 'start-scripts/10-munge') }}"
register: slurm_baseimg_build
when: not slurm_baseimg_build_chg | default(False)
- 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"
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}}"
slurm_baseimg_build_chg:
"{{(slurm_baseimg_build_chg | default(False)) or
slurm_baseimg_build.changed}}"
- name: "build slurm base docker image {{name}}"
include_tasks: dockerimage_build.yml

View File

@@ -0,0 +1,40 @@
- name: create directories for docker image build
file:
path: "/container/docker-images/slurm-{{image_name}}/{{item}}"
state: directory
owner: "{{unpriv_user}}"
group: docker
loop: "{{ [''] + (files | map(attribute='dest') | map('dirname') |
unique | select | list) }}"
- name: copy Dockerfile
copy:
src: "{{image_name}}.Dockerfile"
dest: "/container/docker-images/slurm-{{image_name}}/Dockerfile"
owner: "{{unpriv_user}}"
group: docker
register: slurm_cp_dockerfile
- name: copy requisite files
copy:
content: "{{ item.content }}"
dest: "/container/docker-images/slurm-{{image_name}}/{{item.dest}}"
owner: root
group: root
mode: u=rwx,g=rx,o=rx
loop: "{{ files | default([]) }}"
loop_control:
label: "{{ item.dest }}"
register: slurm_cp_files
- docker_image:
name: "slurm"
tag: "{{image_name}}"
# pull: False
build:
pull: False
path: "/container/docker-images/slurm-{{image_name}}/"
source: build
force_source: "{{slurm_cp_dockerfile.changed or
slurm_cp_files.changed or
slurm_baseimg_build_chg | default(False) }}"

View File

@@ -3,9 +3,9 @@
name: [ slurm, slurm-doc ]
state: present
- include_role:
name: slurm_dockerimage
loop: # FIXME: default(omit)!
- include_tasks:
file: dockerimage.yml
loop:
- name: slurmctld
dockerfile: "{{ lookup('file', 'slurmctld.Dockerfile') }}"
files:
@@ -16,6 +16,10 @@
files:
- dest: 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_var: image
label: "{{ image.name }}"