Ich habe ein Makro, das verwendet wird, um ein lokales Repository mit debmirror
zu erstellen.Wie erhebe ich eine Ausnahme in einem Jinja2-Makro?
Hier ist der Code-Snippet ist:
{%- set gnupghome = kwargs.pop('gnupghome', '/root/.gnupg') %}
{%- set env = { 'GNUPGHOME': gnupghome } %}
keyring_import:
cmd:
- run
{%- if 'keyid' in kwargs and 'keyserver' in kwargs %}
{%- set keyid = kwargs.pop('keyid') %}
{%- set keyserver = kwargs.pop('keyserver') %}
- name: 'gpg --no-default-keyring --keyring {{ gnupghome }}/trustedkeys.gpg --keyserver {{ keyserver }} --recv-keys {{ keyid }}'
{%- elif 'key_url' in kwargs %}
{%- set key_url = kwargs.pop('key_url') %}
- name: 'wget -q -O- "{{ key_url }}" | gpg --no-default-keyring --keyring {{ gnupghome }}/trustedkeys.gpg --import'
{%- endif %}
- require:
- pkg: wget
- pkg: gnupg
Am endif
Stichwort, würde Ich mag else
verwenden, um eine Ausnahme, für zB zu erhöhen:
Entweder key_url oder beide Keyserver und KeyID erforderlich .
Ist es möglich?
Nein, Jinja2 keine Ausnahmen Anhebung nicht unterstützt. Sie können Python-Funktionen oder Filter verwenden, die Ausnahmen auslösen können, aber nicht in reinem Jinja. –