2012-11-27 4 views
6

Wir verwenden EngineYard, die Python standardmäßig installiert hat. Aber als wir SSL aktiviert haben, haben wir folgende Fehlermeldung von unserem Kochrezept erhalten.Wie würden Sie ein Python-Modul mit Chef installieren?

"WARNUNG: Das" ssl "-Modul ist nicht vorhanden. Unzuverlässige Problemumgehung, Host-Identität kann nicht verifiziert werden. Bitte installieren Sie" SSL "-Modul oder eine neuere Version von Python (2.6), wenn möglich.

Ich bin auf der Suche nach einer Möglichkeit, das SSL-Modul mit Chefrezept zu installieren, aber ich habe einfach nicht genug Erfahrung. Könnte mir jemand in die richtige Richtung zeigen?

Ressourcen: Logentries Koch Rezept: https://github.com/logentries/le_chef

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

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

+0

1. Können Sie Ihre ssl-Modul von Hand installieren (ohne Koch zu verwenden)? 2. Notieren Sie sich die Schritte, die Sie vornehmen mussten, um es zu installieren. 3. Konvertieren Sie Ihre Schritte in Chef-Ressourcen. 4. Schreiben Sie sie als ganzes Rezept auf. Welcher dieser Schritte ist für Sie problematisch? –

Antwort

3

Ich schrieb ein Rezept für diese, und bin nun in der Lage, die neuesten Logentries Client auf EngineYard laufen. Hier gehen Sie:

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

Sie ein neues Python installieren könnte PythonBrew mit: https://github.com/utahta/pythonbrew. Sie müssen lediglich libssl installieren, bevor Sie es erstellen, oder es wird immer noch nicht in der Lage sein, SSL zu verwenden. Basierend auf der Warnung scheint es jedoch, dass SSL möglicherweise funktioniert, aber es wird nicht in der Lage, Host zu überprüfen. Natürlich ist das ein Hauptzweck von SSL, also ist das wahrscheinlich ein Nicht-Starter.

HTH

13

Es erscheint nun eine Lösung mit einer besseren Unterstützung der Gemeinschaft zu sein (basierend auf der Tatsache, dass es auf dem opscode website dokumentiert ist).

Sie könnten versuchen:

include_recipe 'python' 
python_pip 'ssl' 

Wie dokumentiert: here oder here

+0

Die Kochbuchreferenzen in dieser Antwort sind jetzt veraltet. README leitet nun an https://github.com/poise/poise-python weiter –