2017-02-21 1 views
0

Je commence maintenant à m'inquiéter de l'utilisation du chef dans des environnements à faible RAM.Le chef est incapable d'installer scipy = MemoryError

Le fait que je ne puisse pas installer scipy pour python est assez irréel. Je dois attendre une erreur .. ssh dans le serveur, exécuter manuellement pip installer scipy et relancer chef solo, puis fonctionne fonctionne. La RAM est de 1 gig pour le serveur.

Chef ... quel est l'accord?

python_package 'scipy' do 
    version '0.18.1' 
end 


--- 67.205.184.137 [2017-02-21T03:20:22+00:00] ERROR: bash[install_scipy] (forex::worker line 34) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '2' 
---- Begin output of "bash" "/tmp/chef-script20170221-3127-cmg0gp" ---- 
STDOUT: Collecting scipy==0.18.1 
    Downloading scipy-0.18.1-cp27-cp27mu-manylinux1_x86_64.whl (40.3MB) 
STDERR: /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning. 
    SNIMissingWarning 
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext 
--- 67.205.184.137 object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning. 
    InsecurePlatformWarning 
Exception: 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main 
    status = self.run(options, args) 
    File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 335, in run 
    wb.build(autobuilding=True) 
    File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build 
    self.requirement_set.prepare_files(self.finder) 
    File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files 
    ignore_dependencies=self.ignore_dependencies)) 
    File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 620, in _prepare_file 
    session=self.session, hashes=hash 
--- 67.205.184.137 es) 
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 821, in unpack_url 
    hashes=hashes 
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 659, in unpack_http_url 
    hashes) 
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 882, in _download_http_url 
    _download_url(resp, link, content_file, hashes) 
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 603, in _download_url 
    hashes.check_against_chunks(downloaded_chunks) 
    File "/usr/local/lib/python2.7/dist-packages/pip/utils/hashes.py", line 46, in check_against_chunks 
    for chunk in chunks: 
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 571, in written_chunks 
    for chunk in chunks: 
    File "/usr/local/lib/python2.7/dist-packages/pip/utils/ui.py", line 139, in iter 
    for x in it: 
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 560, in resp_read 
    decode_content=False): 
    File "/usr/local/lib/python2.7/dist-packages/pip/_ven 
--- 67.205.184.137 dor/requests/packages/urllib3/response.py", line 357, in stream 
    data = self.read(amt=amt, decode_content=decode_content) 
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/response.py", line 314, in read 
    data = self._fp.read(amt) 
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/cachecontrol/filewrapper.py", line 63, in read 
    self._close() 
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/cachecontrol/filewrapper.py", line 50, in _close 
    self.__callback(self.__buf.getvalue()) 
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/cachecontrol/controller.py", line 275, in cache_response 
    self.serializer.dumps(request, response, body=body), 
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/cachecontrol/serialize.py", line 87, in dumps 
    ).encode("utf8"), 
MemoryError 
---- End output of "bash" "/tmp/chef-script20170221-3127-cmg0gp" ---- 
Ran "bash" "/tmp/chef-script20170221-3127-cmg0gp" returned 2 

--- 67.205.184.137 [2017-02-21T03:20:22+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1) 

Répondre

0

Cette erreur ne vient pas de Chef, elle vient de pip. Il n'y a pas grand chose que Chef puisse faire à ce sujet. SciPy et NumPy sont tous deux des bibliothèques très complexes avec beaucoup de code C et Fortran (oui, vraiment) à compiler pour les faire fonctionner. Je voudrais regarder la construction de vos fichiers de roues sur une machine de construction, puis l'installation de ceux-ci.