123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- ---
- # Variables affecting this role:
- #
- # tools:
- # - final_name: the path to the tool to check for
- # completion: generate bash_completion or no
- # completion_file: the name of the bash completion file
- # download: if no, just skip it
- # download_filename: the name of the remote file to download
- # archive_filename: the name of the file inside the archive to extract
- #
- # NOTE: Tools are downloaded from:
- # - mirror.openshift.com for a specific ocp_z version, if only download_filename is set
- # - arbitrary location, download_url + download_filename if both are set
- #
- - name: Make sure Downloads exists
- file:
- path: "{{ ansible_facts['user_dir'] }}/Downloads"
- state: directory
- owner: student
- group: student
- mode: 0775
- - name: Check whether the tool archive is there
- stat:
- path: "{{ ansible_facts['user_dir'] }}/Downloads/{{ tools[item].download_filename }}"
- when: tools[item].download_filename is defined
- register: tool_exists
- loop: "{{ tools.keys() | list }}"
- - name: Download the (OpenShift) tool if necessary
- get_url:
- dest: "{{ ansible_facts['user_dir'] }}/Downloads/{{ tools[item].download_filename }}"
- url: "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/{{ ocp_z }}/{{ tools[item].download_filename }}"
- when:
- - tools[item].download_url is not defined
- - tools[item].download_filename is defined
- - not tool_exists.results[offset].stat.exists
- register: tool_downloaded
- loop: "{{ tools.keys() | list }}"
- loop_control:
- index_var: offset
- - name: Extract the (OpenShift) tool if downloaded
- become: yes
- unarchive:
- src: "{{ ansible_facts['user_dir'] }}/Downloads/{{ tools[item].download_filename }}"
- remote_src: yes
- include: "{{ tools[item].archive_filename }}"
- dest: "{{ tools[item].final_name | dirname }}"
- owner: root
- group: root
- mode: 0755
- when:
- - tools[item].download_filename is defined
- - tools[item].archive_filename is defined
- - tools[item].final_name is defined
- - tool_downloaded.results[offset].changed
- register: tool_extracted
- loop: "{{ tools.keys() | list }}"
- loop_control:
- index_var: offset
- - name: Download the (arbitrary) tool if necessary
- get_url:
- dest: "{{ ansible_facts['user_dir'] }}/Downloads/{{ tools[item].download_filename }}"
- url: "{{ tools[item].download_url }}/{{ tools[item].download_filename }}"
- when:
- - tools[item].download_url is defined
- - tools[item].download_filename is defined
- - not tool_exists.results[offset].stat.exists
- register: tool_downloaded
- loop: "{{ tools.keys() | list }}"
- loop_control:
- index_var: offset
- - name: Extract the (arbitrary) tool if downloaded
- become: yes
- unarchive:
- src: "{{ ansible_facts['user_dir'] }}/Downloads/{{ tools[item].download_filename }}"
- remote_src: yes
- include: "{{ tools[item].archive_filename }}"
- dest: "{{ tools[item].final_name | dirname }}"
- owner: root
- group: root
- mode: 0755
- when:
- - tools[item].download_filename is defined
- - tools[item].archive_filename is defined
- - tools[item].final_name is defined
- - tool_downloaded.results[offset].changed
- register: tool_extracted
- loop: "{{ tools.keys() | list }}"
- loop_control:
- index_var: offset
- - name: Generate completion if necessary
- become: yes
- shell:
- cmd: "{{ tools[item].final_name }} completion bash > /etc/bash_completion.d/{{ tools[item].completion_file }}"
- when:
- - tools[item].completion
- - tools[item].completion_file is defined
- - tools[item].final_name is defined
- - tool_extracted.results[offset].changed
- loop: "{{ tools.keys() | list }}"
- loop_control:
- index_var: offset
- ...
|