aboutsummaryrefslogtreecommitdiff
path: root/kolla/docker/nova/nova-ssh
diff options
context:
space:
mode:
Diffstat (limited to 'kolla/docker/nova/nova-ssh')
-rw-r--r--kolla/docker/nova/nova-ssh/Dockerfile.j234
-rw-r--r--kolla/docker/nova/nova-ssh/extend_start.sh16
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