- name: retrieve user $HOME shell: 'echo $HOME' become_user: '{{ poetry_user }}' register: home_stats - name: retrieve user $PATH shell: 'echo $PATH' become_user: '{{ poetry_user }}' register: path_stats - name: set poetry user variables set_fact: poetry_user_home: '{{ home_stats.stdout }}' poetry_user_path: '{{ path_stats.stdout }}' - name: create user folder for binaries become_user: '{{ poetry_user }}' file: state: directory mode: '0755' path: '{{ poetry_user_home }}/.local/bin' - name: set default python binary become: true file: state: link src: '/usr/bin/python3' dest: '/usr/bin/python' when: ansible_distribution == 'Ubuntu' - name: setup poetry for Ubuntu/Debian derived distro's block: - name: check poetry existence become_user: '{{ poetry_user }}' stat: path: '{{ poetry_dir }}' register: poetry_stats - name: download poetry installer become_user: '{{ poetry_user }}' get_url: url: '{{ poetry_url }}' dest: /tmp/ mode: '0750' when: poetry_stats.stat.isdir is not defined - name: install poetry become_user: '{{ poetry_user }}' command: 'python /tmp/get-poetry.py --yes' environment: POETRY_HOME: '{{ poetry_dir }}' when: poetry_stats.stat.isdir is not defined - name: add poetry to user binaries become_user: '{{ poetry_user }}' file: state: link src: '{{ poetry_dir }}/bin/poetry' dest: '{{ poetry_user_home }}/.local/bin/poetry' when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu' - name: setup poetry for Archlinux become: true pacman: name: poetry state: present when: ansible_facts['os_family'] == 'Archlinux' - name: update poetry config become_user: '{{ poetry_user }}' command: 'poetry config virtualenvs.in-project true' environment: PATH: '{{ poetry_user_home }}/.local/bin:{{ poetry_user_path }}'