Não é possível aplicar a configuração quando a seção http está habilitada. Estou tendo o erro a seguir:
"AnsibleUndefinedVariable: the inline if-expression on line 9 in 'http/grpc.j2' evaluated to false and no else section was defined."}
A configuração foi copiada deste exemplo:
https://github.com/nginxinc/ansible-role-nginx-config/blob/main/molecule/default/converge.yml
Passos para reproduzir o comportamento:
# 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
[...]
Eu esperava que a configuração fosse aplicada sem erros
Adicione qualquer outro contexto sobre o problema aqui.
Encontrou o problema. PR em breve.
obrigado pela resposta rápida, irei acompanhar o desenvolvimento deste assunto.
Você pode puxar do principal e verificar se o PR mais recente corrigiu seu problema? Você pode precisar fazer mais alguns ajustes em seu modelo, uma vez que houve algumas alterações importantes desde 0.3.3
, mas espero que os exemplos atualizados nos testes de molécula ajudem você a chegar lá.
Posso, mas ainda estou testando outras situações de configuração. Acabei de encontrar uma situação semelhante com o 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."}
Parece estar relacionado à linha "proxy".
Esse é um erro mais estranho. Você pode verificar qual versão do Jinja2 você está usando? Os testes para o erro anterior e para este passam bem, e tenho visto os modelos falharem para outras pessoas ao usar versões mais antigas do Jinja2.
Aqui está a versão:
python3-jinja2 2.10.1-2
Também estou tendo problemas para aplicar um proxy: seção em http_settings. Ele continua sendo ignorado e nada é gravado no 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
Você pode querer atualizar para Jinja2 2.11.x
e ver se isso resolve algum dos seus erros. Re proxy
, há um erro de digitação em defaults/main/template.yml
. Você deve incluir seus dados de proxy em nginx_config_http_template
. Vou criar um PR separado para resolver isso o mais rápido possível. Na dúvida, os testes de moléculas são sempre uma boa fonte de verdade e devem sempre ser totalmente funcionais.
Abri um problema separado para o proxy: o problema acima para não enviar spam para este.
Tendo o mesmo problema em relação a http/gzip.j2
. Tentei atualizar para Jinja2==2.11.3
, mas isso também não ajudou.
Esta é a configuração:
---
nginx_config_main_template:
http_settings:
gzip:
enable: true
buffers:
number: 32
size: 16k
comp_level: 6
vary: true
proxied:
- any
types:
- "*"
Erro:
"msg": "AnsibleUndefinedVariable: the inline if-expression on line 27 in 'http/gzip.j2' evaluated to false and no else section was defined.",
A linha 27 inclui o modelo proxied
. Você pode tentar executar o exemplo aqui https://github.com/nginxinc/ansible-role-nginx-config/blob/main/molecule/default/converge.yml#L62 -L76 e ver se ainda tem problemas? Isso ajudará a determinar se é um problema com a função ou talvez ainda seja um problema do Jinja2 (talvez o Jinja2 não tenha sido atualizado corretamente?).