--- - hosts: localhost connection: local vars: force_purge: true roles_installation_dir: roles/public collection_installation_dir: collections installation_prefix: ../ pre_tasks: # example prepare ansible box for execution # - name: install required pip modules on the host running ansible # pip: # name: # - jmespath # - netaddr # - python-consul # - pyvmomi # - python-ldap # - twine - name: Remove existing public roles file: path: "{{ installation_prefix }}{{ roles_installation_dir }}" state: absent when: force_purge | bool - name: Install all public roles command: > ansible-galaxy role install {{ ( force_purge | bool ) | ternary('--force','') }} --role-file {{ installation_prefix }}roles/requirements.yml --roles-path {{ installation_prefix }}{{ roles_installation_dir }} register: galaxy_install_role changed_when: '"Installing " in galaxy_install_role.stdout' - name: Install needed collections command: > ansible-galaxy collection install {{ ( force_purge | bool ) | ternary('--force-with-deps','') }} -r {{ installation_prefix }}collections/requirements.yml -p {{ installation_prefix }}{{ collection_installation_dir }} register: galaxy_install_collection changed_when: '"Installing " in galaxy_install_collection.stdout' - name: cleanup old ssh known_hosts - remove file: path: "../tmp/known_hosts" state: absent mode: "0644" - name: cleanup old ssh known_hosts - blank file: path: "../tmp/known_hosts" state: touch mode: "0644" ...