31 lines
1.2 KiB
YAML
31 lines
1.2 KiB
YAML
---
|
|
- name: Add host keys in /etc/ssh/ssh_known_hosts for live/cold-migration
|
|
become: true
|
|
check_mode: no
|
|
block:
|
|
# Workaround https://bugs.launchpad.net/tripleo/+bug/1810932
|
|
# Ansible modules perform a replace instead of in-place modification.
|
|
# This breaks propagation of changes to containers that bind mount ssh_known_hosts
|
|
- name: Create temporary file for ssh_known_hosts
|
|
tempfile:
|
|
state: file
|
|
register: ssh_known_hosts_tmp
|
|
- name: Create a temporary copy of ssh_known_hosts
|
|
shell: |
|
|
if [[ -e /etc/ssh/ssh_known_hosts ]]; then
|
|
cat /etc/ssh/ssh_known_hosts > '{{ ssh_known_hosts_tmp.path }}'
|
|
fi
|
|
- name: Add host keys to temporary ssh_known_hosts
|
|
lineinfile:
|
|
path: "{{ ssh_known_hosts_tmp.path }}"
|
|
line: "{{ ssh_known_hosts[hostvars[item]['ansible_hostname'] | lower] + ' ssh-rsa ' + hostvars[item]['ansible_ssh_host_key_rsa_public'] }}"
|
|
create: yes
|
|
with_items: "{{ groups['overcloud']|intersect(play_hosts) }}"
|
|
- name: In-place update of /etc/ssh_known_hosts
|
|
shell: |
|
|
cat '{{ ssh_known_hosts_tmp.path }}' > /etc/ssh/ssh_known_hosts
|
|
rm -f '{{ ssh_known_hosts_tmp.path }}'
|
|
tags:
|
|
- tripleo_ssh_known_hosts
|
|
|