diff --git a/extraconfig/tasks/ssh/known_hosts_config.yaml b/extraconfig/tasks/ssh/known_hosts_config.yaml index 50bde65316..324b98df39 100644 --- a/extraconfig/tasks/ssh/known_hosts_config.yaml +++ b/extraconfig/tasks/ssh/known_hosts_config.yaml @@ -11,26 +11,32 @@ resources: type: OS::Heat::SoftwareConfig properties: group: script - inputs: - - name: known_hosts - default: {get_param: known_hosts} - config: | - #!/bin/bash - set -eux - set -o pipefail + config: + str_replace: + params: + KNOWN_HOSTS: {get_param: known_hosts} + template: | + #!/bin/bash + set -eux + set -o pipefail - echo "Creating ssh known hosts file" + echo "Creating ssh known hosts file" - if [ ! -z "${known_hosts}" ]; then - echo "${known_hosts}" - echo -ne "${known_hosts}" > /etc/ssh/ssh_known_hosts - chmod 0644 /etc/ssh/ssh_known_hosts - else - rm -f /etc/ssh/ssh_known_hosts - echo "No ssh known hosts" - fi + if [ -d /etc/ssh/ssh_known_hosts ]; then + rm -rf /etc/ssh/ssh_known_hosts + fi + cat </etc/ssh/ssh_known_hosts + KNOWN_HOSTS + EOF + if [ ! -s /etc/ssh/ssh_known_hosts ]; then + echo "No known hosts" + rm -f /etc/ssh/ssh_known_hosts + else + echo "$(cat /etc/ssh/ssh_known_hosts | wc -l) known hosts" + chmod 0644 /etc/ssh/ssh_known_hosts + fi outputs: OS::stack_id: description: The SSHKnownHostsConfig resource. - value: {get_resource: SSHKnownHostsConfig} \ No newline at end of file + value: {get_resource: SSHKnownHostsConfig} diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index 9de0a37d72..5523a68292 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -459,6 +459,7 @@ resources: depends_on: {% for role_inner in roles %} - {{role_inner.name}}HostsDeployment + - {{role_inner.name}}SshKnownHostsDeployment {% endfor %} properties: name: {{role.name}}AllNodesDeployment