I try to provision my Vagrant boxes with the ansible_local provisioner. The other day I was using the pip ansible module while I was booting the box, but was getting errors while installing packages. It turns out that the pip version I had when I created the environment needed an upgrade. Sure you can run a pip install pip --upgrade from the command line, but how do you do so within a playbook? Pretty easy it seems:
---
- hosts: all
tasks:
- name: create the needed virtual environment and upgrade pip
pip:
chdir: /home/vagrant
virtualenv: work
virtualenv_command: /usr/bin/python3 -mvenv
name: pip
extra_args: --upgrade
- name: now install the requirements
pip:
chdir: /home/vagrant
virtualenv: work
virtualenv_command: /usr/bin/python3 -mvenv
requirements: /vagrant/requirements.txt
(Link to pastebin here in case the YAML above does not render correctly for you.)
I hope it helps you too.