2016-12-13 7 views
0

С http://docs.ansible.com/ansible/playbooks_filters.html сайта он говорит, что я могу сделать следующее:Как использовать фильтры Ansible jinja2 map() и join() правильно без ошибок шаблона?

# get a comma-separated list of the mount points (e.g. "/,/mnt/stuff") on a host 
    {{ ansible_mounts|map(attribute='mount')|join(',') }} 

Я сделал это с:

- debug: var="{{ ansible_mounts|map(attribute='mount')|join(', ') }}" 

Это вызывает следующую ошибку для каждого ...

FAILED! => {"failed": true, "msg": "template error while templating string: unexpected '/'. String: {{/, /homedata, /edbdata, /db1data, /db2data}}"} 

Я пропустил какой-то исключение или инструкцию по умолчанию?

печати из ansible_mounts

[email protected]:/etc/ansible# ansible -u ubuntu -m setup 10.200.240.10 -a 'filter=ansible_mounts' 
10.200.240.10 | SUCCESS => { 
     "ansible_facts": { 
      "ansible_mounts": [ 
     { 
      "device": "/dev/xvda1", 
      "fstype": "ext4", 
      "mount": "/", 
      "options": "rw,noatime,data=ordered", 
      "size_available": 7024513024, 
      "size_total": 8318783488, 
      "uuid": "35634654356" 
     }, 
     { 
      "device": "/dev/xvdb", 
      "fstype": "xfs", 
      "mount": "/homedata", 
      "options": "rw,noatime,attr2,inode64,noquota", 
      "size_available": 13914439680, 
      "size_total": 13948157952, 
      "uuid": "345634564356" 
     }, 
     { 
      "device": "/dev/xvdc", 
      "fstype": "xfs", 
      "mount": "/edbdata", 
      "options": "rw,noatime,attr2,inode64,noquota", 
      "size_available": 16061923328, 
      "size_total": 16095641600, 
      "uuid": "23452345235" 
     }, 
     { 
      "device": "/dev/xvdc", 
      "fstype": "xfs", 
      "mount": "/db1data", 
      "options": "rw,noatime,attr2,inode64,noquota", 
      "size_available": 16061923328, 
      "size_total": 16095641600, 
      "uuid": 234523452" 
     }, 
     { 
      "device": "/dev/xvdd", 
      "fstype": "xfs", 
      "mount": "/db2data", 
      "options": "rw,noatime,attr2,inode64,noquota", 
      "size_available": 16061923328, 
      "size_total": 16095641600, 
      "uuid": "23423452" 
     } 
    ] 
}, 
"changed": false 

}

+0

Работаю отлично. Какую версию вы используете? – Shasha99

+0

ansible 2.2.0.0 – Cloudish123

+0

Хорошо. Можете ли вы попробовать распечатать значение: ansible_mounts? – Shasha99

ответ

1

Вам не нужны фигурные скобки в анзибле 2.2.0 при использовании var. Попробуйте это:

- debug: var=ansible_mounts|map(attribute='mount')|join(', ') 

Обратите внимание, что фигурные скобки необходимы при использовании msg в анзибле 2.2.0. Попробуйте следующее:

- debug: msg={{ansible_mounts|map(attribute='mount')|join(', ')}} 
+0

Спасибо большое! Оно работает – Cloudish123