2012-11-27 2 views
6

Utilizziamo EngineYard che ha installato Python di default. Ma quando abbiamo abilitato SSL abbiamo ricevuto il seguente messaggio di errore dalla nostra ricetta per chef dei nostri loghi.Come installeresti un modulo python con lo chef?

"ATTENZIONE: il modulo" ssl "non è presente. Utilizzando una soluzione non affidabile, l'identità dell'host non può essere verificata. Installare il modulo" ssl "o la versione più recente di Python (2.6) se possibile."

Sto cercando un modo per installare il modulo SSL con la ricetta dello chef ma semplicemente non ho abbastanza esperienza. Potrebbe qualcuno indicarmi la giusta direzione?

Risorse: Logentries cuoco ricette: https://github.com/logentries/le_chef

docs Logentries EY: Modulo https://logentries.com/doc/engineyard/

SSL: http://pypi.python.org/pypi/ssl/

+0

1. Si può installare il modulo ssl a mano (senza utilizzare chef)? 2. Annota i passaggi, dovevi fare per installarlo. 3. Trasforma i tuoi passaggi in risorse chef. 4. Annotarli come una ricetta intera. Quale di questi passaggi è problematico per te? –

risposta

3

ho appena scritto una ricetta per questo, e ora sono in grado di eseguire l'ultima versione del client Logentries su EngineYard. Qui si va:

file_dir = "/mnt/src/python-ssl" 
file_name = "ssl-1.15.tar.gz" 
file_path = File.join(file_dir,file_name) 
uncompressed_file_dir = File.join(file_dir, file_name.split(".tar.gz").first) 

directory file_dir do 
    owner "deploy" 
    group "deploy" 
    mode "0755" 
    recursive true 
    action :create 
end 

remote_file file_path do 
    source "http://pypi.python.org/packages/source/s/ssl/ssl-1.15.tar.gz" 
    mode "0644" 
    not_if { File.exists?(file_path) } 
end 

execute "gunzip ssl" do 
    command "gunzip -C#{file_name} | tar xf -" 
    cwd file_dir 
    not_if { File.exists?(uncompressed_file_dir) } 
end 

installed_file_path = File.join(uncompressed_file_dir, "installed") 

execute "install python ssl module" do 
    command "python setup.py install" 
    cwd uncompressed_file_dir 
    not_if { File.exists?(installed_file_path) } 
end 

execute "touch #{installed_file_path}" do 
    action :run 
end 
0

Si potrebbe installare un nuovo Python utilizzando PythonBrew: https://github.com/utahta/pythonbrew. Basta fare in modo di installare libssl prima di costruire, o ancora non sarà in grado di usare SSL. Tuttavia, in base all'avviso, sembra che SSL potrebbe funzionare, ma non sarà in grado di verificare l'host. Ovviamente, questo è uno degli scopi principali di SSL, quindi è probabile che sia un non-starter.

HTH

13

C'è ora sembra essere una soluzione con un migliore supporto della comunità (in base al fatto che si è documentato sul opscode website).

Si potrebbe provare:

include_recipe 'python' 
python_pip 'ssl' 

Come documentato: here o here

+0

I riferimenti di ricettario in questa risposta sono ora deprecati. README ora inoltra a https://github.com/poise/poise-python –