Today I was writing some puppet class to install a python script to automatically add a server to a zabbix server when it's deployed through puppet. My tool uses the pyzabbix python module available through pip.
I then wondered : "instead of having an exec resource to install my pyzabbix module, why can't I have a pip::package resource or something like that ?" after fiddling around, trying to write my own I stumbled upon the puppet pip provider for the package type
And indeed pip is supported as a provider for the package type in puppet, I had never noticed. It is also documented here
So in order to install the pyzabbix module using the package puppet type :
package { "pyzabbix":
ensure => present,
provider => "pip"
}