title: Loop dictionary in ansible template
body: <p>I'm trying to loop a dictionary through an ansible template using jinja2 to create a number of datasources but receive this error <code>[{'msg': "AnsibleUndefinedVariable: One or more undefined variables: 'dict object' has no attribute 'value'", 'failed': True}]}</code></p>
  
  <p>When running a debug task it does get the correct values back so I feel like my issue is in the template itself but I've been unable to figure out what I am doing wrong.</p>
  
  <p><strong>Ansible Task</strong></p>
  
  <pre><code>- name: debug dictionary
    debug: msg="{{ item.value.db_url }}"
    with_dict: databases
  
  - name: copy tomcat config files
    template: src="{{ item.src }}" dest="{{ item.dest }}"
    with_items:
      - { src: 'context.xml.j2', dest: '/opt/tomcat/conf/context.xml'}
    notify: restart tomcat
    with_dict: databases
  </code></pre>
  
  <p><strong>Ansible Dictionary</strong></p>
  
  <pre><code>databases:
    db1:
      db_resource: jdbc/db1
      db_maxidle: 50
      db_maxconn: 350
      db_maxwait: 10000
      db_user: dbuser
      db_pass: "{{ dbpass }}"
      db_url: jdbc:postgresql://server:5432/dbname
      db_driver: org.postgresql.Driver
  </code></pre>
  
  <p><strong>Jinja2 Template</strong></p>
  
  <pre><code>{% for items in databases %}
      &lt;resource name="{{ item.value.db_resource }}" auth="container" type="javax.sql.datasource"  maxtotal="{{ item.value.db_maxconn }}" maxidle="{{ item.value.db_maxidle }}" maxwaitmillis="{{ item.value.db_maxwait }}" username="{{ item.value.db_user }}" password="{{ item.value.db_pass }}" driverclassname="{{ item.value.db_driver }}" url="{{ item.value.db_url }}" /&gt;
  {% endfor %}
  </code></pre>
  
  <p><strong>Debug Output</strong></p>
  
  <pre><code>ok: [IP] =&gt; (item={'key': 'db1', 'value': {'db_maxwait': 10000, 'db_maxconn': 350, 'db_maxidle': 50, 'db_driver': 'org.postgresql.Driver', 'db_pass': u'REDACTED', 'db_resource': 'jdbc/db1', 'db_user': 'dbuser', 'db_url': 'jdbc:postgresql://server:5432/dbname'}}) =&gt; {
      "item": {
          "key": "db1",
          "value": {
              "db_driver": "org.postgresql.Driver",
              "db_maxconn": 350,
              "db_maxidle": 50,
              "db_maxwait": 10000,
              "db_pass": "REDACTED",
              "db_resource": "jdbc/db1",
              "db_url": "jdbc:postgresql://server:5432/db",
              "db_user": "dbuser"
          }
      },
      "msg": "jdbc:postgresql://server:5432/dbname"
  }
  </code></pre>