bifrost/playbooks/roles/bifrost-prepare-for-test-dy.../tasks/main.yml

55 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
with_items: "{{ 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 == true
- 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 and multinode_testing | bool == true
- name: >
Additional SSH startup pause when performing multi-node testing
pause:
seconds: "{{ node_ssh_pause }}"
when: multinode_testing | bool == true
- 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