Fix ssh_known_hosts hostname entries

Previously the tripleo-ssh-known-hosts ansible role used the list of
network names to create the different possible hostnames in the
ssh_known_hosts file. The network names do not match the actual network
hostnames, like internal_api vs. internalapi which results in ssh host
verification to fail and e.g. live migration to fail.

This changes to use the _hostname inventory information to be used to add
hostname information to the ssh_known_hosts file.

Change-Id: If6e99c65084db35a2a4aa1e76b0b89fb5902794a
Closes-Bug: #1852064
This commit is contained in:
Martin Schuppert 2019-11-11 12:30:21 +01:00
parent cb41764f05
commit a5bcbc8d01
2 changed files with 12 additions and 2 deletions

View File

@ -0,0 +1,10 @@
---
fixes:
- |
Previously the tripleo-ssh-known-hosts ansible role used the list of
network names to create the different possible hostnames in the
ssh_known_hosts file. The network names do not match the actual network
hostnames, like internal_api vs. internalapi which results in ssh host
verification to fail and e.g. live migration to fail.
This changes to use the _hostname inventory information to be used to add
hostname information to the ssh_known_hosts file.

View File

@ -52,8 +52,8 @@
{%- if enabled_networks | length > 0 and role_networks and role_networks | length > 0 %},
{%- for network in enabled_networks %}
{%- if network in role_networks %}
[{{ hostvars[host][networks[network]['name'] ~ '_ip'] }}]*,[{{ host }}.{{ networks[network]['name'] }}]*,{% if 1 %}{% endif %}
[{{ host }}.{{ networks[network]['name'] }}.{{ cloud_domain }}]*{% if not loop.last %},{% endif %}
[{{ hostvars[host][networks[network]['name'] ~ '_ip'] }}]*,[{{ host }}.{{ networks[network]['name'] | replace("_", "") }}]*,{% if 1 %}{% endif %}
[{{ hostvars[host][networks[network]['name'] ~ '_hostname'] }}]*{% if not loop.last %},{% endif %}
{%- endif -%}
{%- endfor -%}
{%- endif -%}