2017-12-22 3 views
-1

Ich habe einen Job in Rundeck, die Benutzer erfordern, Datenbankkennwort an ansible übergeben. Und ansible wird es als eine zusätzliche Variable nehmen.Run ansible-vault encrypt_string in ansible playbook

ansible-playbook test.yml -e "password=123" 

Allerdings würden wir während der Laufzeit wie das Passwort zum Depot, sondern von ansible des best practice. Sie würden erfordern, dass das Passwort in einer Datei gespeichert wird. und sichern Sie die gesamte Datei mit ansible-vault create.

Da haben wir eine große Anzahl von Passwörtern zu übergeben, und ich stelle fest, es gibt einen Funktionsaufruf encrypt_string. Ich versuche, es in einem Playbook zu nennen und versuche, ein Vault-Passwort im laufenden Betrieb zu generieren, aber ich bekomme Fehler unten:

"ERROR! Nur eine - Vault-ID kann für die Verschlüsselung verwendet werden. Dies enthält Passwörter aus Konfiguration und CLI. "

Hier ist mein Textbuch test.yml:

--- 
- name: test 
    hosts: localhost 
    tasks: 
    - name: vault var 
    command: ansible-vault encrypt_string "{{ password }}" --vault-password-file ~/.vault_pass.txt 
    register: var 

    - name: variable 
    set_fact: 
     mypass: var 

    - name: test encrypt_string 
    debug: 
     msg: "{{ mypass }}" 

Ich bin nicht sicher, ob dies der richtige Weg, es/beste Praxis zu tun ist, kann jemand etwas Licht wird sehr geschätzt .

Danke,

Antwort

0

Sie Ihre Aufgabe --vault-password-file durch Entfernen Option aktualisieren können als ansible scheint es aus Ihrer Umgebung eine Möglichkeit bekommen/zu lesen.

 
... 
... 
- name: test 
    hosts: localhost 
    tasks: 
    - name: vault var 
    command: ansible-vault encrypt_string "{{ password }}" 
    register: var 
... 
... 

Wenn Sie in Textbuch um diese Option zu halten bevorzugen, müssen Sie finden, wo ansible ist es aus der Lektüre. Ansible kann es aus seiner Standardkonfigurationsdatei lesen, die normalerweise unter ~/.ansible.cfg [suchen Sie nach vault_password_file] oder alias oder woanders gefunden wird.

Weitere Informationen finden Sie unter ansible vault documentation mit Beispielen.