简体   繁体   中英

ansible vars_files and extra_vars to read input

looking to pass the dict to read a set of key value pairs based on the location. When values are hardcoded to the playbook, it works fine but calling through extra_vars giving an error message. Not sure even if it supports. appreciate, your thoughts and inputs.

ansible-playbook play3.yml -e '{"var1":"loc2"}' -vv

play3.yml

---
- name: testing
  hosts: localhost
  connection: local
  gather_facts: no
  vars_files:
    -  var_file.yml
  tasks:
    - debug:
        msg: "{{ var1['first'] }}"

var_file.yml

---
loc1:
  first: name1
  last: name2
loc2:
  first: python
  last: perl
...

"Anything's possible in an animated cartoon." -Bugs Bunny

This playook:

---
- name: testing
  hosts: localhost
  connection: local
  gather_facts: no
  vars_files:
    - var_file.yml
  tasks:
    - debug:
        var: "{{ item }}.first"
      with_items: "{{ var1 }}"

Gave me this output:

TASK [debug] **********************************************************************************************************************************
task path: /home/jack/Ansible/CANES/PLAYBOOKS/play3.yml:9
ok: [localhost] => (item=None) => {
    "loc2.first": "python"
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM