# Error when using vars\_files and vars\_prompt in same playbook

**URL:** <https://forum.ansible.com/t/error-when-using-vars-files-and-vars-prompt-in-same-playbook/12275>\
**Category:** Ansible Project\
**Tags:** ansible-project\
**Created:** [January 31, 2013, 7:27pm UTC](https://forum.ansible.com/t/error-when-using-vars-files-and-vars-prompt-in-same-playbook/12275 "2013-01-31T19:27:37Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Daniel\_Hokka\_Zakriss](https://avatars.discourse-cdn.com/v4/letter/d/f05b48/32.png) [@Daniel\_Hokka\_Zakriss](https://forum.ansible.com/u/Daniel_Hokka_Zakriss)\
**Post date:** [January 31, 2013, 7:27pm UTC](https://forum.ansible.com/t/error-when-using-vars-files-and-vars-prompt-in-same-playbook/12275/1 "2013-01-31T19:27:37Z")

</div>

Andrew Berman wrote:

> Hello,
> 
> I'm new to Ansible and I'm not sure if this is a bug or if I'm doing  
> something wrong. I currently have a playbook which has vars\_prompt and  
> vars\_files in it and no matter what I do, I get a Python error. Here is  
> the playbook:
> 
> ---
> 
> -  
> &nbsp;&nbsp;&nbsp;&nbsp;hosts: $hosts
> 
> &nbsp;&nbsp;&nbsp;&nbsp;user: root
> 
> &nbsp;&nbsp;&nbsp;&nbsp;vars\_prompt:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: pg\_port  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prompt: "What port should Postgres run on?"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private: no  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default: 5432
> 
> &nbsp;&nbsp;&nbsp;&nbsp;vars\_files:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- vars/postgres.yml  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- vars/global\_vars.yml
> 
> It works only when I comment out the entire vars\_files block. Here is the  
> Python error:
> 
> Traceback (most recent call last):  
> &nbsp;&nbsp;File "/usr/bin/ansible-playbook", line 177, in \<module\>  
> &nbsp;&nbsp;&nbsp;&nbsp;sys.exit(main(sys.argv[1:]))  
> &nbsp;&nbsp;File "/usr/bin/ansible-playbook", line 148, in main  
> &nbsp;&nbsp;&nbsp;&nbsp;pb.run()  
> &nbsp;&nbsp;File "/usr/lib/python2.6/site-packages/ansible/playbook/\_\_init\_\_.py",  
> line 192, in run  
> &nbsp;&nbsp;&nbsp;&nbsp;play = Play(self, play\_ds, play\_basedir)  
> &nbsp;&nbsp;File "/usr/lib/python2.6/site-packages/ansible/playbook/play.py", line  
> 83, in \_\_init\_\_  
> &nbsp;&nbsp;&nbsp;&nbsp;self.\_update\_vars\_files\_for\_host(None)  
> &nbsp;&nbsp;File "/usr/lib/python2.6/site-packages/ansible/playbook/play.py", line  
> 300, in \_update\_vars\_files\_for\_host  
> &nbsp;&nbsp;&nbsp;&nbsp;raise errors.AnsibleError("%s must be stored as dictonary/hash: %s" %  
> filename4)  
> TypeError: not enough arguments for format string
> 
> Can anyone help me?

It looks like your vars\_files aren't formatted as dicts. They should look  
something like

---

<div class="post-metadata">

**Author:** ![Arne\_Jacobs](https://avatars.discourse-cdn.com/v4/letter/a/9f8e36/32.png) [@Arne\_Jacobs](https://forum.ansible.com/u/Arne_Jacobs)\
**Post date:** [January 31, 2013, 7:44pm UTC](https://forum.ansible.com/t/error-when-using-vars-files-and-vars-prompt-in-same-playbook/12275/2 "2013-01-31T19:44:23Z")

</div>

And if you update from Git, you’ll even see which one of your var\_files is invalid, because a friendly person named dhozac has fixed the format string error a few minutes ago ;-).

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan](https://avatars.discourse-cdn.com/v4/letter/m/c4cdca/32.png) [@Michael\_DeHaan](https://forum.ansible.com/u/Michael_DeHaan)\
**Post date:** [January 31, 2013, 7:56pm UTC](https://forum.ansible.com/t/error-when-using-vars-files-and-vars-prompt-in-same-playbook/12275/3 "2013-01-31T19:56:28Z")

</div>

daniel\_hozac is a machine!

---

<div class="post-metadata">

**Author:** ![Andrew\_Berman](https://avatars.discourse-cdn.com/v4/letter/a/b77776/32.png) [@Andrew\_Berman](https://forum.ansible.com/u/Andrew_Berman)\
**Post date:** [January 31, 2013, 8:03pm UTC](https://forum.ansible.com/t/error-when-using-vars-files-and-vars-prompt-in-same-playbook/12275/4 "2013-01-31T20:03:42Z")

</div>

Yep, this was the problem. I had an extraneous hyphen in both files.

Thanks for all the replies and help!

Andrew
