--- - name: set file if already set by heat variable (backwards-compatibility) set_fact: image_filename: "{{ amp_image_filename }}" when: - amp_image_filename is defined - not ((amp_image_filename | length) < 1) - name: set location if CentOS set_fact: image_filename: "/usr/share/openstack-octavia-amphora-images/amphora-x64-haproxy.qcow2" when: - ansible_facts['distribution'] == 'CentOS' - not (image_filename is defined) - name: set location if Red Hat set_fact: image_filename: "/usr/share/openstack-octavia-amphora-images/octavia-amphora.qcow2" when: - ansible_facts['distribution'] == 'RedHat' - not (image_filename is defined) - name: check if amphora image file exists stat: path: "{{ image_filename }}" follow: true get_md5: true register: image_file_result - include_tasks: image_mgmt.yml when: - image_file_result.stat.exists | bool - name: use ssh pub key file if provided and is readable block: - name: check if pub key file exists stat: path="{{ amp_ssh_key_path }}" register: key_file_result - name: fail if ssh pub key file does not exist or is not readable fail: msg="{{ amp_ssh_key_path }} does not exist or is not readable by user {{ ansible_user }}" when: - (not (key_file_result.stat.exists | bool)) or (not (key_file_result.stat.readable | bool)) - name: Set final key fact set_fact: amp_ssh_key_path_final: "{{ amp_ssh_key_path }}" when: - amp_ssh_key_path is defined - (amp_ssh_key_path | length) > 0 - name: defaulting to public key from undercloud default keypair block: - name: create temp pub key file tempfile: state=file register: ssh_key_tmp_file - name: copy ssh public key content to temp file copy: content="{{ amp_ssh_key_data }}" dest="{{ ssh_key_tmp_file.path }}" - name: Set final key fact set_fact: amp_ssh_key_path_final: "{{ ssh_key_tmp_file.path }}" when: - amp_ssh_key_path is not defined or ((amp_ssh_key_path | length) < 1) - name: get the desired public key fingerprint shell: | set -o pipefail ssh-keygen -E md5 -lf {{ amp_ssh_key_path_final }} | awk '{ print $2 }' | cut -c 5- register: ssh_keygen_results - name: Create keypair os_keypair: state: present name: "{{ amp_ssh_key_name }}" public_key_file: "{{ amp_ssh_key_path_final }}" register: keypair_fingerprint environment: OS_USERNAME: "{{ auth_username }}" OS_PASSWORD: "{{ auth_password }}" OS_PROJECT_NAME: "{{ auth_project_name }}"