νμ¬ map ν¨μλ λ€μκ³Ό κ°μ΄λ§ μ¬μ©ν μ μμ΅λλ€.
[{'path':'/var/file1', 'mtime': '123', 'mode': '600',...},{'path':'/var/file2', 'mtime': '123', 'mode': 644, ...}]|map(attribute='path')
μ λ°νκ³Ό ν¨κ»
['/var/file1', '/var/file2']
(λ¬Έμ: http://jinja.pocoo.org/docs/dev/templates/#map)
λλ μ΄κ²μ νμ©νλ κ²μ μ μνκ³ μΆμ΅λλ€:
[{'path':'/var/file1', 'mtime': '123', 'mode': '600',...},{'path':'/var/file2', 'mtime': '123', 'mode': 644, ...}]|map(attribute=['path', 'mtime'])
λλ
[{'path':'/var/file1', 'mtime': '123', 'mode': '600',...},{'path':'/var/file2', 'mtime': '123', 'mode': 644, ...}]|map(attributes=['path', 'mtime'])
λ°νν΄μΌ νλ
[{'path':'/var/file1', 'mtime': '123'},{'path':'/var/file2', 'mtime': '123'}]
μ΄κ²μ΄ 무μμ μ μ©νμ§ μ΄λ―Έ μ μ μμ΅λλ€. μ¬μ λͺ©λ‘μ΄ μ νλ μμ± μ§ν©λ§ μ μ§νλλ‘ μ¬μ λͺ©λ‘μ μ‘°μνλ κ²μ λλ€.
μ΄ κΈ°λ₯μ μ’μν κ²μ λλ€.
μ΄κ²μ΄ ν νλ¦Ώμ νμν μ΄μ κ° νμ€νμ§ μμ΅λλ€. μ¬μ μ λ°λ³΅νκ³ νμν μμ±μ μ¬μ©νλ©΄ λμΌν κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€. λ€λ₯Έ λ°μ΄ν°κ° νμν κ²½μ° λ λλ§νκΈ° μ μ Pythonμμ ν΄λΉ μ‘°μμ μννλ κ²μ΄ μ’μ΅λλ€. ννμ λ°ννλ μ©λλ₯Ό _μ΄μ©λ©΄_ λ³Ό μ μμ΅λλ€.
λκ΅°κ° μ¬μ ν μ΄κ²μ νμλ‘ νλ κ²½μ° λ€μ μ½λλ₯Ό μ¬μ©ν μ μμ΅λλ€( playbooks/filter_plugins/mapattributes.py
).
#!/usr/bin/env python
class FilterModule(object):
def filters(self):
return { 'mapattributes': self.mapattributes }
def mapattributes(self, list_of_dicts, list_of_keys):
l = []
for di in list_of_dicts:
newdi = { }
for key in list_of_keys:
newdi[key] = di[key]
l.append(newdi)
return l
λ€μμ ν΅ν΄ μ¬μ©:
ansible_mounts | mapattributes(['mount', 'size_total', 'size_available',])
μ΄ λ¬Έμ κ° μ’ λ£λκ³ Nee6ione μ루μ μ΄ κ³΅μμ μΌλ‘ ꡬνλμ§ μμ μ΄μ λ 무μμ λκΉ? μΆκ° νλ¬κ·ΈμΈ μμ΄ μ§μλλ€λ©΄ ν¨μ¬ λ κ°λ¨ν κ²μ λλ€.
κ°μ₯ μ μ©ν λκΈ
λκ΅°κ° μ¬μ ν μ΄κ²μ νμλ‘ νλ κ²½μ° λ€μ μ½λλ₯Ό μ¬μ©ν μ μμ΅λλ€(
playbooks/filter_plugins/mapattributes.py
).λ€μμ ν΅ν΄ μ¬μ©: