после решения этой проблемы сам ...
Вы можете проверить, есть ли пакет, который вы хотите установить
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'
}
если это не работает для вас (возможно, вы хотите установить много пакетов), вы можете использовать пользовательский фактор и выполнять установку, только если этот факт не существует.
вам нужно сделать что-то вроде этого -
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,
}
}
Кстати, вы также можете использовать этот сценарий для установки пакета pip3 обычным образом - https://github.com/openstack-infra/puppet-pip/blob/master/lib/puppet/provider/package/pip3.rb