Ich stelle meine Rails-App mit Capistrano bereit. Ich möchte einige API-Schlüssel auf dem Server als Umgebungsvariable speichern. Diese API-Schlüssel sollten für meine Rails-App verfügbar sein, die mit Capistrano bereitgestellt wird. Auf diese API-Schlüssel sollte auch eine separate Ruby-Datei zugreifen können, die als Daemon ausgeführt wird.Capistrano und API-Schlüssel in ENV-Variablen?
Die Einstellung der API-Schlüssel in Umgebungsvariablen scheint die ideale Lösung zu sein, aber ich kann nicht auf sie in meiner Rails-App mit ENV["SOME_KEY"]
zugreifen.
Nach this post, weil capistrano als nicht interaktiv und nicht Login ausgeführt wird, ~/.bashrc
und ~/.bash_profile
sind nicht geladen. Das Flussdiagramm schlägt vor, dass ich $BASH_ENV
verwenden sollte.
Kann ich einfach meine API-Schlüssel in $BASH_ENV
hinzufügen und auf sie in meiner Rails-App zugreifen und in der Ruby-Datei, die ein Daemon ist mit ?
Ich denke auch darüber nach, nur die api-Schlüssel zu einer Datei irgendwo auf dem Server hinzuzufügen und symlinking es mit dem Ruby-Datei-Verzeichnis und Rails-Verzeichnis und einfach öffnen und lesen. Wäre das möglich?
Ich habe persönlich entschieden Geheimnisse zu speichern und diese in Dateien in einem Verzeichnis, das nicht in dem Versionskontrollsystem enthalten ist, nachdem ihn mit experimentierte die Umgebungsvariablen immer richtig propagiert werden. Sei bloß vorsichtig! – ollpu
Check-out der Dotenv Juwel, tut es im Grunde, was @ollpu gesagt hat. https://github.com/bkeepers/dotenv – Teddy
@ollpu: Also im Grunde die Dateien manuell zu den Schienen Dir nach der Bereitstellung hinzufügen? Wie liest du diese Dateien, nachdem du sie zum Verzeichnis hinzugefügt hast? – MeesterPatat