1
私はSaltStackを使用してBIND9ゾーンファイルを管理しています。以前私はこのような柱のデータを使用していますデータ型に依存するJinja条件付き節
このような(単に読みやすくするためにインデント)神社テンプレートファイルと一緒にzones:
example.com:
a:
www1: 1.2.3.4
www2: 1.2.3.5
:
{% if info.a is defined %}
{% for host, defn in info.a.items() %}
{{ host }} IN A {{ defn }}
{% endfor %}
{% endif %}
info
がコンテキスト変数(zones.example.com
で辞書)であります。
ここで、Aレコードごとに複数のIPを定義できる必要があります。 - 神社テンプレートに - スカラー値(単一のIPアドレスを表す)、またはされてdefn
の違いを知ることが
zones:
example.com:
a:
www1: 1.2.3.4
www2: 1.2.3.5
www:
- 1.2.3.4
- 1.2.3.5
必要があります。前の例では、私はサブドメインwww
ラウンドロビンに望んでいたと仮定リスト(IPアドレスの集合を表す)。ような何か:this threadから
{% for host, defn in info.a.items() %}
{% if DEFN_IS_A_LIST_OBJECT %}
{% for ip in defn %}
{{ host }} IN A {{ ip }}
{% endfor %}
{% else %}
{{ host }} IN A {{ defn }}
{% endif %}
{% endfor %}
は私がif isinstance(defn, list)
を試してみましたが、私は得る:
Unable to manage file: Jinja variable 'isinstance' is undefined
私もif len(defn)
を試みたが、実現の長さ()文字列だけでなく、リストへのTruthy対応させていただきます。また、しかし、エラーとして報告されています
Unable to manage file: Jinja variable 'len' is undefined
はどのようにして、リストや神社内の文字列を区別することができますか?値は文字列のみまたはリストすることができた場合
パーフェクトと文字列でないことを確認することができます! –