sau khi tự mình giải quyết vấn đề này ...
bạn có thể kiểm tra xem gói bạn muốn cài đặt có ở đó không
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'
}
nếu điều đó không phù hợp với bạn (có thể bạn muốn cài đặt nhiều gói), bạn có thể sử dụng một tùy chỉnh và chỉ thực hiện cài đặt nếu thực tế đó không tồn tại. bạn cần phải làm một cái gì đó như thế này -
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, bạn cũng có thể sử dụng tập lệnh này để cài đặt gói pip3 theo cách rối thông thường-
https://github.com/openstack-infra/puppet-pip/blob/master/lib/puppet/provider/package/pip3.rb