Wir verwenden Ansible Vault , um Passwörter, private Schlüssel für Zertifikate usw. in unserem Ansible Playbook Git-Repository zu speichern. Alle unsere vorhandenen privaten Daten liegen in Textform vor, sodass wir sie in Variablen speichern können. Diese werden dann in Vorlagen oder mit dem contentParameter des Kopiermoduls verwendet.
Jetzt haben wir eine Java KeyStore-Datei, die leider ein Binärformat hat. Als solches kann es nicht in einer Variablen gespeichert werden - oder zumindest weiß ich nicht, wie es geht. Was wäre der einfachste Weg, um unsere Datei ordnungsgemäß zu verschlüsseln, während sie in Git ruht, aber beim Ausführen verfügbar ist ansible-playbook?
Was ich schon ohne Erfolg versucht habe:
- Codieren der Binärdatei in base64, Speichern der codierten Daten in einer Variablen und Verwenden des Vorlagenmoduls mit
{{base64_data | b64decode}}. Führt zu vielenEF BF BDHex-Dumps der resultierenden Datei. Die drei Bytes codieren das Unicode-Ersetzungszeichen in UTF-8, sodass bei der Interpretation der Binärdaten als Text ein Problem auftritt. - Codieren der binären Datei in Base64, die codierten Daten in einer Variablen zu speichern und unter Verwendung des Kopiermoduls mit
content="{{base64_data | b64decode}}". Ansible beschwert sich mit "Eine Variable hat einen neuen Parameter in die Modulargumente eingefügt." Bei der Verwendung von einfachen Anführungszeichen anstelle von doppelten Anführungszeichen beschwert sich Ansible mit einer "Fehleranalyse-Argumentationszeichenfolge" und einer Kopie aller Binärdaten, die an das Terminal ausgegeben werden ...