![Receita do Puppet 3.8 para instalar o pacote via Python pip](https://rvso.com/image/1465793/Receita%20do%20Puppet%203.8%20para%20instalar%20o%20pacote%20via%20Python%20pip.png)
Como não tenho o Puppet 4.2 ou posterior para o provedor pip3, qual é uma abordagem alternativa para instalar pacotes Python manualmente por meio do comando 'pip3'?
Se eu usar a abordagem 'exec', como posso controlar a reinstalação do pacote o tempo todo? (ou seja, como posso dizer ao 'puppet apply' que o pacote já está instalado)
Responder1
depois de lidar com esse problema sozinho ...
você pode verificar se o pacote que deseja instalar está lá
exec { 'install python packages':
command => 'pip3 install flask flask_restful apiai',
path => ['/usr/bin/'],
unless => '/usr/bin/test -f /usr/local/lib/python3.4/dist-packages/flask/app.py'
}
se isso não funcionar para você (talvez você queira instalar muitos pacotes), você pode usar um fator personalizado e realizar a instalação somente se esse fato não existir. você precisa fazer algo assim -
if ($need_to_install == undef ) {
exec { 'install python packages':
command => 'pip3 install flask flask_restful apiai; touch /root/installed.txt',
path => ['/usr/bin/'],
before => Exec['create custom facter'],
}
exec { 'create custom facter':
command => "mkdir -p /etc/facter/facts.d; echo 'need_to_install=false' > /etc/facter/facts.d/check_pip_install.txt",
provider => shell,
}
}
BTW, você também pode usar este script para instalar o pacote pip3 da maneira normal do fantoche- https://github.com/openstack-infra/puppet-pip/blob/master/lib/puppet/provider/package/pip3.rb