web-dev-qa-db-fra.com

Comment passer automatiquement le mot de passe du coffre-fort lors de l'exécution du playbook Ansible?

J'ai un playbook Ansible avec coffre-fort, et je veux demander le mot de passe du coffre-fort via la boîte d'invite dans mon interface Web, puis transmettre le mot de passe publié lors de l'exécution du playbook ansible. J'ai essayé d'utiliser:

echo $password | ansible-playbook test.yml --ask-vault-pass

pour passer le mot de passe au playbook, mais cela ne fonctionne pas, le message d'erreur est:

"msg": "Tentative de déchiffrement mais aucun secret de coffre-fort n'a été trouvé"

Je ne veux pas stocker le mot de passe dans un fichier pour certaines résons et maintenant je veux juste essayer de passer automatiquement le mot de passe au playbook pendant son exécution. Y a-t-il des conseils pour moi? La version ansible est 2.4.

11
snow

Voici comment je fais les choses et cela fonctionne bien. Ma ligne de commande ressemble à ceci:

[Prompt/]$ansible-playbook -i <inventory>, /mnt/m/NetworkGetters/get_vpn_status.yml --extra-vars varsfilepath=/mnt/m/NetworkVars/Host_vars/test-oci-test-vpn-config.yml

Mon mot de passe aseptisé.yml (fichier vault) ressemble à ceci:

---
credentials:
  base: &base
    Host: "{{ansible_Host}}"
    timeout: 30
    transport: cli
  svc_rhelsystemrw:
    <<: *base
    username: svc_rhelsystemrw
    password: dWERE#@kds23

Mes playbooks suivent cette convention:

name: Set VPN Configuration
  hosts: all
  connection: local
  gather_facts: no
  vars_files:
    - "{{ varsfilepath }}"
    - "/etc/ansible/NetworkVars/passwords.yml"
  vars:
    # ssh_auth credentials come from ansible vault
    provider_rw:
      username:  "{{ credentials['svc_rhelsystemrw'].username }}"
      password:  "{{ credentials['svc_rhelsystemrw'].password }}"

  tasks:
  - name: Capture Pre-change Configuration
    ios_command:
      provider: "{{ provider_rw }}"    
      commands:
        - show running-config
    register: running_config_before
    tags: vpn 

  - debug:
      var: running_config_before.stdout
    tags: vpn
0
RobWieters

@All Assurez-vous que vous ajoutez vault_password_file = dans la section [defaults] du fichier ansible.cfg.

J'étais confronté au même problème lorsque j'ai ajouté vault_password_file = dans une autre section qui a été résolue après l'avoir déplacé dans [valeurs par défaut]

tentez votre chance si cela vous aide.

0
user12043586