diff options
Diffstat (limited to 'kolla/docker/nova/nova-ssh')
| -rw-r--r-- | kolla/docker/nova/nova-ssh/Dockerfile.j2 | 34 | ||||
| -rw-r--r-- | kolla/docker/nova/nova-ssh/extend_start.sh | 16 |
2 files changed, 50 insertions, 0 deletions
diff --git a/kolla/docker/nova/nova-ssh/Dockerfile.j2 b/kolla/docker/nova/nova-ssh/Dockerfile.j2 new file mode 100644 index 000000000..0d9e36b65 --- /dev/null +++ b/kolla/docker/nova/nova-ssh/Dockerfile.j2 @@ -0,0 +1,34 @@ +FROM {{ namespace }}/{{ image_prefix }}nova-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" +{% endblock %} + +{% block nova_ssh_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='nova', shell='/bin/bash') }} + +{% set nova_ssh_packages = [ + 'openssh-server', + 'rsync' +] %} + +{% if base_package_type == 'deb' %} + +RUN mkdir -p /var/run/sshd \ + && chmod 0755 /var/run/sshd + +{% endif %} + +{{ macros.install_packages(nova_ssh_packages | customizable("packages")) }} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start + +RUN sed -ri 's/session(\s+)required(\s+)pam_loginuid.so/session\1optional\2pam_loginuid.so/' /etc/pam.d/sshd \ + && chmod 644 /usr/local/bin/kolla_extend_start + +{{ macros.kolla_patch_sources() }} + +{% block nova_ssh_footer %}{% endblock %} +{% block footer %}{% endblock %} diff --git a/kolla/docker/nova/nova-ssh/extend_start.sh b/kolla/docker/nova/nova-ssh/extend_start.sh new file mode 100644 index 000000000..b80114c0a --- /dev/null +++ b/kolla/docker/nova/nova-ssh/extend_start.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +SSH_HOST_KEY_TYPES=( "rsa" "ecdsa" "ed25519" ) + +for key_type in ${SSH_HOST_KEY_TYPES[@]}; do + KEY_PATH=/etc/ssh/ssh_host_${key_type}_key + if [[ ! -f "${KEY_PATH}" ]]; then + ssh-keygen -q -t ${key_type} -f ${KEY_PATH} -N "" + fi +done + +mkdir -p /var/lib/nova/.ssh + +if [[ $(stat -c %U:%G /var/lib/nova/.ssh) != "nova:nova" ]]; then + chown nova: /var/lib/nova/.ssh +fi |
