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
[...]
рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛
рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВред
рдореБрджреНрджрд╛ рдорд┐рд▓рд╛ред рдкреАрдЖрд░ рдЬрд▓реНрдж рд╣реА рдЖ рд░рд╣рд╛ рд╣реИред
рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реВрдВрдЧрд╛ред
рдХреНрдпрд╛ рдЖрдк рдореБрдЦреНрдп рд╕реЗ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирд╡реАрдирддрдо рдкреАрдЖрд░ рдиреЗ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ? рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдХреБрдЫ рдФрд░ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 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 рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдкрд┐рдЫрд▓реЗ рдФрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдареАрдХ-рдард╛рдХ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЬрд┐рдирдЬрд╛ 2 рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:
python3-jinja2 2.10.1-2
рдореБрдЭреЗ http_settings рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдкреНрд░реЙрдХреНрд╕реА: рдЕрдиреБрднрд╛рдЧ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рднреА рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИред рдЗрд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ 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
рдЖрдк рдЬрд┐рдиреНрдЬрд╛реи 2.11.x
рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдкреБрди: proxy
, defaults/main/template.yml
рддрд╣рдд рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИред рдЖрдкрдХреЛ nginx_config_http_template
рдЕрдВрддрд░реНрдЧрдд рдЕрдкрдирд╛ рдкреНрд░реЙрдХреНрд╕реА рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЙрд╕ рдпрдерд╛рд╢реАрдШреНрд░ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреАрдЖрд░ рдмрдирд╛рдКрдВрдЧрд╛ред рдЬрдм рд╕рдВрджреЗрд╣ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЕрдгреБ рдкрд░реАрдХреНрд╖рдг рд╣рдореЗрд╢рд╛ рд╕рддреНрдп рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реНрд░реЛрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВрдиреЗ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛: рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛ рдЗрд╕реЗ рд╕реНрдкреИрдо рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
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 рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЕрднреА рднреА рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ? рдЗрд╕рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА рдХрд┐ рдпрд╣ рднреВрдорд┐рдХрд╛ рдпрд╛ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЕрднреА рднреА рдПрдХ рдЬрд┐рдиреНрдЬрд╛ 2 рдореБрджреНрджрд╛ рд╣реИ (рд╢рд╛рдпрдж рдЬрд┐рдиреНрдЬрд╛ 2 рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реБрдЖ?)