私は2.1を使用しています。ほとんどのWebサーバーにはIPが1つしかありませんが、一部のサーバーには2つのIPがあります。各Webサーバーには、内部使用のための特別なWebサイトがあります。このサイトに使用するIPを定義する特別な変数があります。INTERNALWEBSITE_LISTEN_IPがnullの場合 - メインIPを使用していない場合はhost_varsのカスタムIPを使用します。 roles/web_std/defaults/main.yml
の可能:条件を使ってjinja2テンプレートをコンパクトにする方法
内容:inventory/host_vars/100.200.1.2
上
r_web_std:
INTERNALWEBSITE_LISTEN_IP: null
内容:
r_web_std:
INTERNALWEBSITE_LISTEN_IP: "100.200.1.4"
(このホストが2つのIPを持っている:100.200.1.2と100.200.1.4、100.200.1.2とはデフォルトIPです)
ここでは、server.conf.j2
のフラグメントです。
DocumentRoot /www/{% if r_web_std.INTERNALWEBSITE_LISTEN_IP == null %}{{ ansible_default_ipv4.address }}{% else %}{{ r_web_std.INTERNALWEBSITE_LISTEN_IP }}{% endif %}/www
ErrorLog /var/log/httpd/{% if r_web_std.INTERNALWEBSITE_LISTEN_IP == null %}{{ ansible_default_ipv4.address }}{% else %}{{ r_web_std.INTERNALWEBSITE_LISTEN_IP }}{% endif %}/error.log
CustomLog "/var/log/httpd/{% if r_web_std.INTERNALWEBSITE_LISTEN_IP == null %}{{ ansible_default_ipv4.address }}{% else %}{{ r_web_std.INTERNALWEBSITE_LISTEN_IP }}{% endif %}/access.log" combined
私の目!
これを簡略化することはできますか?
{% if r_web_std.INTERNALWEBSITE_LISTEN_IP == null %}
{{ ansible_default_ipv4.address }}
{% else %}
{{ r_web_std.INTERNALWEBSITE_LISTEN_IP }}
{% endif %}