--- - name: Install Pyenv build dependencies for Debian based systems become: true ansible.builtin.apt: name: - make - build-essential - libssl-dev - zlib1g-dev - libbz2-dev - libreadline-dev - libsqlite3-dev - wget - curl - llvm - libncursesw5-dev - xz-utils - tk-dev - libxml2-dev - libxmlsec1-dev - libffi-dev - liblzma-dev state: present when: ansible_facts.os_family == 'Debian' - name: Install Pyenv build dependencies for Arch systems community.general.pacman: update_cache: true name: - base-devel - openssl - zlib - xz - tk state: present when: ansible_facts.distribution == 'Archlinux' - name: Install Pyenv build depdencies for CentOS become: true ansible.builtin.dnf: update_cache: true name: - gcc - zlib-devel - bzip2 - bzip2-devel - readline-devel - sqlite - sqlite-devel - openssl-devel - tk-devel - libffi-devel - xz-devel state: present when: ansible_facts.distribution == 'CentOS' - name: Install Pyenv build depdencies for MacOS community.general.homebrew: name: - openssl - readline - sqlite3 - xz - zlib - tcl-tk state: present when: ansible_facts.distribution == 'MacOSX' - name: Set Pyenv install path if not set ansible.builtin.set_fact: pyenv_install_path: "{{ xdg_data_home + '/pyenv' }}" when: pyenv_install_path is not defined - name: Check if Pyenv installed ansible.builtin.stat: path: "{{ pyenv_install_path }}" register: pyenv_installed changed_when: false - name: Get Pyenv from git when: not pyenv_installed.stat.exists ansible.builtin.git: repo: https://github.com/pyenv/pyenv.git dest: "{{ pyenv_install_path }}" version: master - name: Install Pyenv when: not pyenv_installed.stat.exists ansible.builtin.shell: > cd "{{ pyenv_install_path }}" && src/configure && make -C src changed_when: true