ボールトを含むAnsibleプレイブックを持っています。Webインターフェースの[プロンプト]ボックスからボールトのパスワードを要求し、Ansibleプレイブックを実行するときに投稿されたパスワードを渡します。私が使用しようとしました:
echo $password | ansible-playbook test.yml --ask-vault-pass
プレイブックにパスワードを渡すが、それが機能しない場合、エラーメッセージは次のとおりです。
"msg": "復号化しようとしていますが、ボールトシークレットが見つかりません"
一部の応答ではパスワードをファイルに保存したくないので、実行中に自動的にプレイブックにパスワードを渡そうとします。何かアドバイスはありますか? ansibleバージョンは2.4です。
これが私が物事をやっている方法であり、それはうまくいきます。私のコマンドラインは次のようになります:
[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
私のサニタイズされたpasswords.yml(ボールトファイル)は次のようになります。
---
credentials:
base: &base
Host: "{{ansible_Host}}"
timeout: 30
transport: cli
svc_rhelsystemrw:
<<: *base
username: svc_rhelsystemrw
password: dWERE#@kds23
私のプレイブックはこの慣例に従っています:
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
@All vault_password_file =をansible.cfgファイルの[defaults]セクションに追加していることを確認してください。
[デフォルト]に移動した後で解決された別のセクションにvault_password_file =を追加すると、同じ問題に直面していました
それが役立つ場合は運を試してください。