Impossible d'appliquer la configuration lorsque la section http est activée. J'obtiens l'erreur suivante :
"AnsibleUndefinedVariable: the inline if-expression on line 9 in 'http/grpc.j2' evaluated to false and no else section was defined."}
La configuration a été copiée à partir de cet exemple :
https://github.com/nginxinc/ansible-role-nginx-config/blob/main/molecule/default/converge.yml
Étapes pour reproduire le comportement :
# 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
[...]
Je m'attendais à ce que la configuration s'applique sans erreur
Ajoutez ici tout autre contexte concernant le problème.
Trouvé le problème. PR à venir.
merci pour la réponse rapide, je vais suivre l'évolution de ce problème.
Pouvez-vous tirer du principal et vérifier si le dernier PR a résolu votre problème ? Vous devrez peut-être apporter quelques modifications supplémentaires à votre modèle car il y a eu quelques changements majeurs depuis 0.3.3
, mais j'espère que les exemples mis à jour dans les tests de molécules devraient vous aider à y arriver.
Je peux, mais je teste toujours d'autres situations de configuration. Je viens de trouver une situation similaire avec 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."}
Semble être lié à la ligne "proxy".
C'est une erreur plus étrange. Pouvez-vous vérifier quelle version de Jinja2 vous utilisez ? Les tests pour l'erreur précédente et cette erreur passent très bien, et j'ai vu des modèles échouer pour d'autres personnes lors de l'utilisation d'anciennes versions de Jinja2.
Voici la version :
python3-jinja2 2.10.1-2
J'ai également des difficultés à appliquer un proxy : section sous http_settings. Il continue d'être ignoré et rien n'est écrit dans 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
Vous voudrez peut-être mettre à jour vers Jinja2 2.11.x
et voir si cela résout l'une de vos erreurs. Concernant proxy
, il y a une faute de frappe sous defaults/main/template.yml
. Vous devez inclure les détails de votre procuration sous nginx_config_http_template
. Je vais créer un PR séparé pour résoudre ce problème dès que possible. En cas de doute, les tests moléculaires sont toujours une bonne source de vérité et doivent toujours être pleinement fonctionnels.
J'ai ouvert un problème séparé pour le proxy : problème ci-dessus pour ne pas spammer celui-ci.
Avoir le même problème en ce qui concerne http/gzip.j2
. J'ai essayé de passer à Jinja2==2.11.3
, mais cela n'a pas aidé non plus.
Voici la config :
---
nginx_config_main_template:
http_settings:
gzip:
enable: true
buffers:
number: 32
size: 16k
comp_level: 6
vary: true
proxied:
- any
types:
- "*"
Erreur:
"msg": "AnsibleUndefinedVariable: the inline if-expression on line 27 in 'http/gzip.j2' evaluated to false and no else section was defined.",
La ligne 27 comprend le modèle proxied
. Pouvez-vous essayer d'exécuter l'exemple ici https://github.com/nginxinc/ansible-role-nginx-config/blob/main/molecule/default/converge.yml#L62 -L76 et voir si vous rencontrez toujours des problèmes ? Cela aidera à déterminer s'il s'agit d'un problème avec le rôle ou s'il s'agit toujours d'un problème Jinja2 (peut-être que Jinja2 n'a pas été mis à jour correctement ?).