2017-11-23 3 views
0

virtuelle Ressourcen zu konvertieren habe ich eine Ressource, die ‚Hash‘ als argumnent nimmt:Wie man einen Hash

nginx::resource::map { ‘verions’: 
    mappings => { hash of nginx upstreams here } 
} 

Das Problem ist, sind die Daten für dieses Hash am Ort nicht verfügbar, aber alle über die Umgebung. So kam ich mit Idee an den Stellen, virtuelle Ressourcen zu nutzen:

@upstream_entry { ‘name’: location => ‘location’ } 

Und dann sammeln sie an dem Ort

Upstream_Entry <| |> 

Aber das hilft nicht viel excepts es Daten zusammen sammelt. Wie kann ich diese gefälschten Ressourcen in einen Hash konvertieren und an nginx füttern?

Dies hängt mit Vorlagen zusammen, da alle nginx :: resource :: map eine Datei mit Hash-Inhalten erstellt.

+0

Warum nicht den Ressourcensammler mit 'nginx :: resource :: map' verwenden? –

+0

@MattSchuchard Resource Collector sammelt nur Ressourcen an einem Ort, aber würde keine Referenzen auf sie auf irgendeine Weise zurückgeben. Siehe meine Antwort. – desertkun

Antwort

0

Nach einigen Tagen der Recherche kam ich zu dem Schluss, dass dies in der Tat nicht möglich ist.

Ich kann jedoch concat Modul (mit concat::fragment) verwenden, um eine Konfigurationsdatei aus Ressourcen zu erstellen, indem Sie concat::fragment innerhalb von ihnen definieren.

Deshalb bin ich in ein pull request für nginx Modul gekommen, das meinen speziellen Fall löst: Ich musste einfach die Idee verlassen, Hash als "upstream Quelle" zu verwenden, sondern Puppet Ressourcen zu verwenden, um sie zu definieren sammle sie zusammen mit concat.

Verwandte Themen