kayobe/ansible/roles/ssh-known-host/tasks/main.yml

36 lines
1.3 KiB
YAML

---
# If no IP address has been configured for the host on the admin network, this
# is typically the first task to fail. Provide a friendly message with
# information on how to resolve the issue.
- name: Validate SSH address
fail:
msg: >-
Host {{ inventory_hostname }} has no address configured on the admin
network. IP addresses may be manually configured in
'network-allocations.yml', or are automatically allocated during the
following commands: 'kayobe seed hypervisor host configure', 'kayobe
seed host configure', 'kayobe overcloud host configure', 'kayobe seed
vm provision' and 'kayobe overcloud inventory discover'.
when: not ansible_host | default(inventory_hostname)
- name: Scan for SSH keys
local_action:
module: command ssh-keyscan {{ item }}
with_items:
- "{{ ansible_host|default(inventory_hostname) }}"
register: keyscan_result
changed_when: False
# NOTE(priteau): Run this task serially as known_hosts is not safe to execute
# concurrently, and some keys can end up being dropped. For more details see
# https://github.com/ansible/proposals/issues/113
- name: Ensure SSH keys are in known hosts
local_action:
module: known_hosts
host: "{{ item[0].item }}"
key: "{{ item[1] }}"
with_subelements:
- "{{ keyscan_result.results }}"
- stdout_lines
throttle: 1