# 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