2017-03-21 5 views
0

Hallo ich Chef bin mit für die Bereitstellung Automatisierung einer Wordpress-Seite, wo in ich brauche database, host, username und password von meinem shared.yml für wp-config.php zu lesen, so unter Code in meiner Template-Datei Ich versucheInterpolation in PHP für Koch Automatisierung

Die Interpolation findet jedoch nicht dort statt, wo sie tatsächliche Werte annehmen soll, die in _shared.yml definiert sind. Meine Attribute in Chef sieht wie folgt aus.

default[:example_wp][:database][:host]   = "" 
default[:example_wp][:database][:adapter]  = "mysql2" 
default[:example_wp][:database][:database]  = "wordpress" 
default[:example_wp][:database][:username]  = "wordpress" 
default[:example_wp][:database][:password]  = "" 

Kann jemand mit Interpolation helfen, die ich versuche.

Danke.

+0

Scheint seltsam zu sein, double double zu quotieren. ''" <% = @database%> "' vs' "<% = @database%>" '. Auch was ist '@' da für sollte das '$' Ich kann nichts an diesem Symbol finden. – nerdlyist

+0

@nerdlyist Eigentlich ist das eine Ruby-Syntax, um anzuzeigen, dass es eine Ruby-Variable ist, die durch '<% @variable%>' –

+0

dargestellt wird. Ist das eine PHP-Datei oder eine Ruby-Datei? Wie analysierst du das Yaml? – nerdlyist

Antwort

0

So ein paar Fragen, die erste ist, dass Sie sicherstellen müssen, dass Sie die Attribute der Vorlage Ressource vorbei sind:

template '/whatever/wp-config.php' do 
    # Other stuff here ... 
    variables node[:example_wp][:database].to_hash 
end 

Die zweite ist, dass, wie in den Kommentaren darauf hingewiesen, werden Sie wahrscheinlich don‘ t bedeuten, dass diese zusätzlichen doppelten Anführungszeichen in der Vorlage oder der gerenderte Wert wie '"wordpress"' aussieht.

Drittens, ich bin mir nicht sicher, was Sie von dem shared.yml Teil bedeuten, sind diese Knoten Attribute oder versuchen Sie sie aus einer lokalen Datei, und wenn dieser dann zu lesen, woher aus der Datei kommen?

+0

'_shared.yml' ist Knotenattributdatei, wo ich alle Details der Datenbankverbindung übergeben, die ich in Rezept verwenden möchte. Auch ich benutze hier Vorlagenressource. Ich mache mir deswegen keine Sorgen. Worüber ich besorgt bin, ist, dass meine Ruby-Variablen nicht in der PHP-Konfigurationsdatei interpoliert werden, die letztendlich eine Vorlagendatei ist. –