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"
}