An Ansible Role that installs Pip on Linux.
On RedHat/CentOS, you may need to have EPEL installed before running this role. You can use the geerlingguy.repo-epel
role if you need a simple way to ensure it's installed.
Available variables are listed below, along with default values (see defaults/main.yml
):
pip_package: python3-pip
The name of the package to install to get pip
on the system. For older systems that don't have Python 3 available, you can set this to python-pip
.
pip_executable: pip3
The role will try to autodetect the pip executable based on the pip_package
(e.g. pip
for Python 2 and pip3
for Python 3). You can also override this explicitly, e.g. pip_executable: pip3.6
.
pip_externally_managed: true
Marking whether Python base environments should be "externally managed" or not.
pip_install_packages: []
A list of packages to install with pip. Examples below:
pip_install_packages:
# Specify names and versions.
- name: docker
version: "1.2.3"
- name: awscli
version: "1.11.91"
# Or specify bare packages to get the latest release.
- docker
- awscli
# Or uninstall a package.
- name: docker
state: absent
# Or update a package to the latest version.
- name: docker
state: latest
# Or force a reinstall.
- name: docker
state: forcereinstall
# Or install a package in a particular virtualenv.
- name: docker
virtualenv: /my_app/venv
# Or pass through any extra arguments.
- name: my_special_package_from_my_special_repo
extra_args: --extra-index-url https://my-domain/pypi/pypi-master/simple
None.
- hosts: all
vars:
pip_install_packages:
- name: docker
- name: awscli
roles:
- geerlingguy.pip
MIT / BSD
This role was created in 2017 by Jeff Geerling, author of Ansible for DevOps.