# - name: Create folder structure(s) # ansible.builtin.file: # path: "{{ item }}" # state: directory # loop: # - /foo - name: Download & install static binaries ansible.builtin.get_url: url: "{{ item.url }}" url_username: "{{ item.username | default(omit) }}" url_password: "{{ item.password | default(omit) }}" dest: /usr/local/bin/{{ item.filename }} owner: root group: root mode: 0755 loop: "{{ dependencies.static_binaries | selectattr('archive', 'undefined') }}" loop_control: label: "{{ item.filename }}" - name: Download, extract & install archived static binaries include_tasks: dependencies.archive_compressed.yml loop: "{{ dependencies.static_binaries | rejectattr('archive', 'undefined') | selectattr('archive', 'equalto', 'compressed') }}" loop_control: label: "{{ item.filename }}" - name: Install ansible-galaxy collections ansible.builtin.shell: cmd: ansible-galaxy collection install {{ item }} register: collections loop: "{{ dependencies.ansible_galaxy_collections }}" retries: 5 delay: 5 until: collections is not failed - name: Install distro packages ansible.builtin.apt: pkg: "{{ dependencies.packages.apt }}" state: latest update_cache: yes install_recommends: no - name: Upgrade all packages ansible.builtin.apt: name: '*' state: latest update_cache: yes - name: Install additional python packages ansible.builtin.pip: name: "{{ dependencies.packages.pip }}" state: latest - name: Cleanup apt cache ansible.builtin.apt: autoremove: yes purge: yes