2016-05-01 5 views
1

Ich benutze Salz im Standalone-Minion-Modus, dh nur eine Instanz ohne Master. Der Ordner /srv/secrets/ enthält geheime Dateien wie die Datei id_rsa und andere. In einer Säule Statusdatei habe ich die folgendeWie kann ich eine Säule mithilfe von contents_pillar aus ext_pillar referenzieren: file_tree im Masterless-Modus?

ext_pillar: 
    - file_tree: 
     root_dir: /srv/secrets/ 
     follow_dir_links: False 
     keep_newline: True 
    - some_other_var: some_other_value

Wenn ich salt-call saltutil.refresh_pillar und salt-call pillar.items ich folgendes

[INFO ] Determining pillar cache 
[INFO ] Determining pillar cache 
local: 
    ---------- 
    ext_pillar: 
     |_ 
      ---------- 
      file_tree: 
       ---------- 
       follow_dir_links: 
        False 
       keep_newline: 
        True 
       root_dir: 
        /srv/secrets/ 
     |_ 
      ---------- 
      some_other_var: 
       some_other_value

Meine Frage erhalten: Wie kann ich zB den contens der id_rsa Datei verweisen mit contents_pillar?

Wenn ich versuche, salt-call state.apply mit

ssh_private_key: 
    file.managed: 
    - name: /root/.ssh/id_rsa 
    - contents_pillar: ext_pillar:id_rsa

I Pillar ext_pillar:id_rsa does not exist bekommen. Wenn ich ext_pillar:some_other_var verwende, funktioniert contents_pillar und wird auf some_other_value (wie oben angegeben) eingestellt. Ich denke, das ganze Säulensystem funktioniert, aber ich verweise falsch darauf. Ich habe auch versucht ext_pillar:file_tree:id_rsa ohne Erfolg.

Meine Einstellung:

+0

Sie müssen Ihre 'ext_pillar'-Konfiguration in Ihre Master-Konfiguration anstatt als eine Pillar-Datei einfügen. Auch 'ext_pillar' wird im Masterless-Modus nicht unterstützt, siehe https://docs.saltstack.com/en/latest/topics/development/external_pillars.html – number5

Antwort

2

Die mit file_tree versehen Dateien ausgesetzt sind als Säulendaten, ohne Unterschied. Um die Datei zu erhalten tree_root/keys/id_rsa, dann würden Sie verwenden: - contents_pillar: keys:id_rsa Für mein Bedürfnis, füge ich einen Stammordner files namens sicher sein, ich schaffen keine Konflikte zwischen file_tree Dateien und andere Säule Werte.

Auch in der aktuellen Implementierung müssen Sie Ihre Dateien in einer Verzeichnisstruktur für Knotengruppen oder Hosts platzieren.

In ext_root:

nodegroups/servers/ {files} 
nodegroups/stations/ {files} 
nodegroups/.../ {files} 
hosts/host1/ {files} 
hosts/host2/ {files} 
hosts/.../ {files} 

Wenn Sie möchten, dass alle Hosts einige Dateien zu erhalten, müssen Sie eine Knotengruppe erstellen, die alle Hosts enthält, und dann legen Sie Ihre Dateien in: nodegroups/all/. Aber dann, haben Sie andere Probleme, wie nicht in der Lage, Ihre Dateien mit salt-ssh als Knotengruppen werden hier nicht unterstützt (Körner nicht verfügbar). Und ich denke, das ist auch bei Standalone-Salz der Fall.

Also ich denke, dass Sie in Ihrem Fall Ihre Dateien in hosts/{minion_id} platzieren könnten. minion_id ist Ihr Hostname.

+0

Ich habe ein Problem zum Hinzufügen dieser Fähigkeit geöffnet: https://github.com/Salzstapel/Salz/Probleme/32978 –

Verwandte Themen