2fe879dd0d
* Prefer modern SSH key algorithms * Generate an ECDSA key if Cirros is used * Always resolve symlinks when copying logs Remove all previous work-arounds. Change-Id: Ie9248584c71f7d326d5839710d6b9bdf6d779749
57 lines
2.3 KiB
YAML
57 lines
2.3 KiB
YAML
# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
---
|
|
- name: "Wait for the base testvm machine to become available."
|
|
wait_for: state=started port=22 host={{ ipv4_address }} timeout={{ wait_timeout }}
|
|
when: ipv4_address is defined
|
|
- name: "Pause for 4 seconds to allow testvm to become fully operational and to avoid any potential sshd startup race."
|
|
# NOTE(TheJulia): AFAIK sshd opens it's socket and then loads/generates
|
|
# keys, which can become visible as a race, hence the four second pause.
|
|
pause: seconds={{ node_ssh_pause }}
|
|
- name: "Add testvm(s) to Ansible Inventory"
|
|
# NOTE(TheJulia): add_host only triggers once per play. Since we need to
|
|
# add all hosts, we need to use a loop.
|
|
add_host: name="{{ hostvars[item]['ipv4_address'] }}:22" groups=test
|
|
loop: "{{ groups['baremetal'] }}"
|
|
when: ipv4_address is defined
|
|
- name: "Ensure ~/.ssh/known_hosts is present"
|
|
file:
|
|
path: "~/.ssh/known_hosts"
|
|
state: touch
|
|
mode: 0600
|
|
when: ipv4_address is defined
|
|
- name: "Remove testvm hosts from SSH known_hosts file."
|
|
command: ssh-keygen -R "{{ ipv4_address }}"
|
|
when: ipv4_address is defined
|
|
- name: "Pause before asking for keyscan, to avoid races"
|
|
pause: minutes=3
|
|
when: multinode_testing | bool
|
|
- name: >
|
|
Re-check SSH connectivity prior to proceeding with multi-node testing
|
|
wait_for:
|
|
state: started
|
|
port: 22
|
|
host: "{{ ipv4_address }}"
|
|
when:
|
|
- ipv4_address is defined
|
|
- multinode_testing | bool
|
|
- name: >
|
|
Additional SSH startup pause when performing multi-node testing
|
|
pause:
|
|
seconds: "{{ node_ssh_pause }}"
|
|
when: multinode_testing | bool
|
|
- name: "Add testvm hosts from SSH known_hosts file."
|
|
shell: ssh-keyscan "{{ ipv4_address }}" >> "{{ ansible_env.HOME }}/.ssh/known_hosts"
|
|
when: ipv4_address is defined
|