2017-05-02 5 views
0

Ich benutze die Sphinx-Suchmaschine für meine Anwendung, und ich möchte Ruby-Code in der sphinx.conf-Datei hinzufügen, um einige Werte dynamisch auf meinem Anwendungsserver zu aktualisieren Hostname? Ist es möglich, den Ruby-Code innerhalb von sphinx.conf auszuführen? So etwas wie unterWie man dynamischen Code/Ruby-Code innerhalb der .conf-Datei hinzufügt

{ 
    type = mysql 
    sql_host = testHost 
    sql_user = test 
    sql_pass = <%= D.decrypt("encrypted password") %> // Ruby CODE 
    sql_db = {{database_name}} 
    sql_query_pre = SET TIME_ZONE = '+0:00' 
    sql_query_pre = SET SESSION group_concat_max_len = 32768 
    sql_query_pre = SET NAMES utf8 
} 
+0

Verwenden Sie die Vorlage "erb" und "File.write". Fehle ich etwas? –

+0

Ich möchte nur innerhalb der .conf-Datei direkt ausführen. – loganathan

Antwort

0

Kurz gesagt, nein, es ist nicht möglich. Sphinx kann Ruby nicht direkt in seiner .conf-Datei ausführen.

aber sagen, dass Sie Umgebungsvariablen das Passwort aus Ihrer Konfigurationsdatei zu halten, verwenden können:

{ 
    type = mysql 
    sql_host = testHost 
    sql_user = test 
    sql_pass = $SQL_PASS 
    sql_db = {{database_name}} 
    sql_query_pre = SET TIME_ZONE = '+0:00' 
    sql_query_pre = SET SESSION group_concat_max_len = 32768 
    sql_query_pre = SET NAMES utf8 
} 

Dann können Sie die Umgebungsvariable in der Kommandozeile gesetzt, wenn entweder Sie Sphinx laufen:

SQL_PASS="mypassword123" indexer -c /path/to/config 

Oder setzen sie es in Ihrem Bashrc:

export SQL_PASS="mypassword123" 

Oder setzen sie es in reiben y:

ENV["SQL_PASS"] = "mypassword123" 

Beachten Sie, dass unabhängig davon, welche Methode Sie wählen, können Sie die Umgebungsvariable vor gesetzt müssen Sie Sphinx laufen.

Verwandte Themen