play_hosts
, bir oyun için tüm makinelerin listesidir. Bunları alıp format()
gibi bir şey kullanarak [email protected]%s
gibi yeniden yazmak ve daha sonra join()
gibi bir şeyle birleştirmek istiyorum. Bu nedenle: girişin biçim dizesi olduğu bir liste değil, tüm biçim örnekleri boruları kullanın. İstediğimi gerçekleştirmek için bunları (veya başka bir şeyi) kullanmanın bir yolu var mı? jinja2 doc böyle biçimini tarif ederJinja2: format + listeye üye olun
['[email protected]', '[email protected]', [email protected]', ...]
: Yani üç çeşit verir
{{ "%s - %s"|format("Hello?", "Foo!") }}
-> Hello? - Foo!
:
format(value, *args, **kwargs)
bir nesne üzerinde biçimlendirme piton dizesini uygulayın çıkış gerektiği gibi görünür girdi, ancak bu örnekte, borudaki ve diğer ikisinin de args yoluyla geçtiğini gösteren girişleri açıklamıyor. Borulu dizeyi belirtmek için bir anahtar kelime arg var mı? Lütfen yardım edin python rahipleri! Sen özel filtre
# /usr/share/ansible/plugins/filter/format_list.py (check filter_plugins path in ansible.cfg)
def format_list(list_, pattern):
return [pattern % s for s in list_]
class FilterModule(object):
def filters(self):
return {
'format_list': format_list,
}
oluşturmak ve
{{ play_hosts | format_list('[email protected]%s') }}
olur bu işin? (Hiç jinja kullanmamıştım) '{play_hosts% 'da host için%}' '{{" rabbitmq @% s "| biçim (host)}}' {% {endfor%}} – Pynchia
Liste kavramasının tümü gibi görünüyor ihtiyacın var. – Barmar