Fix ssh_known_hosts hostname entries

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.

Initial approach in a5bcbc8d01 had to be reverted
as it resulted in errors when the _hostname inventory information was missing
from the ansible inventory.

Also syncs to use the same approach to create the hostname like in
https://review.opendev.org/693010 to have entries in /etc/hosts and
ssh_known_hosts created in the same way/source.

Closes-Bug: #1852064

Change-Id: Ie04d0f0cd9474070bffd153fa3dddee9f304a14f
(cherry picked from commit d6541e624e)
This commit is contained in:
Martin Schuppert 2019-11-13 17:54:26 +01:00
parent 0c76b58e7f
commit 25a5df8797
2 changed files with 18 additions and 2 deletions

View File

@ -0,0 +1,16 @@
---
fixes:
- |
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.
Initial approach in a5bcbc8d015b792b3546ecbb139506f248dacfe8 had to be
reverted as it resulted in errors when the _hostname inventory information
was missing from the ansible inventory.
This syncs to use the same approach to create the hostname like in
https://review.opendev.org/693010 to have entries in /etc/hosts and
ssh_known_hosts created in the same way/source.

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 }}.{{ network.lower() }}]*,{% if 1 %}{% endif %}
[{{ host }}.{{ network.lower() }}.{{ cloud_domain }}]*{% if not loop.last %},{% endif %}
{%- endif -%}
{%- endfor -%}
{%- endif -%}