Công thức Puppet 3.8 để cài đặt gói thông qua Python pip


0

Vì tôi không có Puppet 4.2 trở lên cho nhà cung cấp pip3, cách tiếp cận khác để cài đặt các gói Python bằng tay thông qua lệnh 'pip3' là gì?

Nếu tôi sử dụng phương pháp 'exec', làm cách nào để kiểm soát gói không bị cài đặt lại mọi lúc? (tức là làm thế nào để tôi nói với 'con rối áp dụng' rằng gói đã được cài đặt)

Câu trả lời:


2

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.