http μΉμ μ΄ νμ±νλ κ²½μ° κ΅¬μ±μ μ μ©ν μ μμ΅λλ€. λ€μ μ€λ₯κ° λ°μν©λλ€.
"AnsibleUndefinedVariable: the inline if-expression on line 9 in 'http/grpc.j2' evaluated to false and no else section was defined."}
μ΄ μμμ ꡬμ±μ΄ 볡μ¬λμμ΅λλ€.
https://github.com/nginxinc/ansible-role-nginx-config/blob/main/molecule/default/converge.yml
λμμ μ¬ννλ λ¨κ³:
# https://github.com/nginxinc/ansible-role-nginx
- name: Install NGINX
include_role:
name: nginxinc.nginx
vars:
nginx_install_from: os_repository
nginx_start: false
nginx_type: opensource
nginx_state: present
# https://github.com/nginxinc/ansible-role-nginx-config
- name: Configure NGINX
include_role:
name: nginxinc.nginx_config
vars:
nginx_config_start: false
nginx_config_cleanup: true
nginx_config_debug_output: true
nginx_config_debug_tasks: true
# top level nginx configuration
nginx_config_main_template_enable: true
nginx_config_main_template:
template_file: nginx.conf.j2
conf_file_name: nginx.conf
conf_file_location: /etc/nginx/
worker_connections: 1024
http_custom_includes:
- "/etc/nginx/sites-enabled/*.conf"
user: www-data
worker_processes: auto
pid: /var/run/nginx.pid
# http configuration section
http_enable: true
http_settings:
grpc_global:
bind:
address: $remote_addr
transparent: false
buffer_size: 4k
connect_timeout: 60s
[...]
ꡬμ±μ΄ μ€λ₯ μμ΄ μ μ©λκΈ°λ₯Ό κΈ°λνμ΅λλ€.
μ¬κΈ°μ λ¬Έμ μ λν λ€λ₯Έ 컨ν μ€νΈλ₯Ό μΆκ°νμμμ€.
λ¬Έμ λ₯Ό μ°Ύμμ΅λλ€. 곧 PRμ΄ μ¬ κ²μ λλ€.
λΉ λ₯Έ μλ΅μ κ°μ¬λ립λλ€. μ΄ λ¬Έμ μ λν νμ μ‘°μΉλ₯Ό μ·¨νκ² μ΅λλ€.
λ©μΈμμ κ°μ Έμ μ΅μ PRμ΄ λ¬Έμ λ₯Ό ν΄κ²°νλμ§ νμΈν μ μμ΅λκΉ? 0.3.3
μ΄ν λͺ κ°μ§ μ£Όμ λ³κ²½ μ¬νμ΄ μμΌλ―λ‘ ν
νλ¦Ώμ μΆκ°λ‘ μ‘°μ ν΄μΌ ν μλ μμ§λ§ λΆμ ν
μ€νΈμ μ
λ°μ΄νΈλ μμ κ° λμμ΄ λκΈ°λ₯Ό λ°λλλ€.
ν μ μμ§λ§ μ¬μ ν λ€λ₯Έ κ΅¬μ± μν©μ ν μ€νΈνκ³ μμ΅λλ€. λ°©κΈ gzipμμ λΉμ·ν μν©μ λ°κ²¬νμ΅λλ€.
gzip:
enable: true
buffers:
number: 32
size: 4k
comp_level: 1
disable:
- '"msie6"'
http_version: 1.1
min_length: 20
proxied:
- expired
types:
- text/html
vary: false
fatal: [testing-snap05.snapview.net]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: the inline if-expression on line 27 in 'http/gzip.j2' evaluated to false and no else section was defined."}
"νλ‘μλ" λΌμΈκ³Ό κ΄λ ¨μ΄ μλ κ² κ°μ΅λλ€.
λ μ΄μν μ€λ₯μ λλ€. μ¬μ© μ€μΈ Jinja2 λ²μ μ νμΈν μ μμ΅λκΉ? μ΄μ μ€λ₯μ μ΄ μ€λ₯μ λν ν μ€νΈλ λͺ¨λ μ ν΅κ³ΌνμΌλ©° μ΄μ λ²μ μ Jinja2λ₯Ό μ¬μ©ν λ λ€λ₯Έ μ¬λλ€μκ² ν νλ¦Ώμ΄ μ€ν¨νλ κ²μ 보μμ΅λλ€.
λ²μ μ λ€μκ³Ό κ°μ΅λλ€.
python3-jinja2 2.10.1-2
λν http_settings μλμ μλ proxy: μΉμ μ μ μ©νλ λ° λ¬Έμ κ° μμ΅λλ€. κ³μ 무μλκ³ nginx.confμ μ무κ²λ κΈ°λ‘λμ§ μμ΅λλ€.
proxy: # Optional -- Configure Proxy
buffer_size: 4k # Optional
buffering: true # Optional boolean
buffers: # Optional
number: 8 # Required
size: 4k # Required
busy_buffers_size: 8k # Optional
cache: false # Optional -- Set to 'false' or specify cache zone
Jinja2 2.11.x
λ‘ μ
λ°μ΄νΈνκ³ μ€λ₯κ° ν΄κ²°λλμ§ νμΈν μ μμ΅λλ€. λ€μ proxy
, μλμ μ€νκ° μμ΄μ defaults/main/template.yml
. nginx_config_http_template
μλμ νλ‘μ μΈλΆμ 보λ₯Ό ν¬ν¨ν΄μΌ ν©λλ€. μ΅λν 빨리 ν΄κ²°νκΈ° μν΄ λ³λμ PRμ λ§λ€κ² μ΅λλ€. μμ¬μ€λ¬μ΄ κ²½μ° λΆμ ν
μ€νΈλ νμ μ§μ€μ μ’μ μμ€μ΄λ©° νμ μλ²½νκ² μλν΄μΌ ν©λλ€.
νλ‘μμ λν λ³λμ λ¬Έμ λ₯Ό μ΄μμ΅λλ€. μ΄ λ¬Έμ λ₯Ό μ€νΈνμ§ μκΈ° μν΄ μμ λ¬Έμ μ λλ€.
http/gzip.j2
μ κ΄λ ¨νμ¬ λμΌν λ¬Έμ κ° μμ΅λλ€. Jinja2==2.11.3
μ
κ·Έλ μ΄λλ₯Ό μλνμ§λ§ λμμ΄ λμ§ μμμ΅λλ€.
μ΄κ²μ ꡬμ±μ
λλ€:
---
nginx_config_main_template:
http_settings:
gzip:
enable: true
buffers:
number: 32
size: 16k
comp_level: 6
vary: true
proxied:
- any
types:
- "*"
μ€λ₯:
"msg": "AnsibleUndefinedVariable: the inline if-expression on line 27 in 'http/gzip.j2' evaluated to false and no else section was defined.",
27νμλ proxied
ν
νλ¦Ώμ΄ ν¬ν¨λμ΄ μμ΅λλ€. https://github.com/nginxinc/ansible-role-nginx-config/blob/main/molecule/default/converge.yml#L62 -L76μμ μμ λ₯Ό μ€ννκ³ μ¬μ ν λ¬Έμ κ° λ°μνλμ§ νμΈν μ μμ΅λκΉ? μ΄λ μν μ λ¬Έμ μΈμ§ λλ μ¬μ ν Jinja2 λ¬Έμ μΈμ§ νμΈνλ λ° λμμ΄ λ©λλ€(Jinja2κ° μ¬λ°λ₯΄κ² μ
λ°μ΄νΈλμ§ μμμ μ μμ΅λκΉ?).