ansible-role-nginx-config
ansible-role-nginx-config copied to clipboard
Validate configuration
Is your feature request related to a problem? Please describe
I have a problem with configuration by validation
Describe the solution you'd like
If my configuration is invalid (based on the current handlers code), an error is thrown
Describe alternatives you've considered
Nope
Additional context
For example I have a config:
nginx_config_http_template_enable: true
nginx_config_http_template:
- template_file: http/default.conf.j2
deployment_location: /etc/nginx/conf.d/path-to.conf
config:
servers:
- core:
server_name1: some.example.com
locations:
- location: /
proxy:
pass: http://127.0.0.1:8080
And in this case:
First mistake is that "server_name1" is not a valid name (cuz 1 at the end)
Second mistake is is the number of indents (need left for 2 spaces)
After applying this configuration I received an empty /etc/nginx/conf.d/path-to.conf file
Hey @DoctorFTB -- there is indeed no parameter validation built into the role. I'll try to investigate the best way to do it as soon as I can.
Question, what do you mean with the second mistake? I am not entirely sure I can identify the issue.
Hey. Thanks. About question, check the screenshot, I added a blue line.
Key "locations" must be part of the "servers" element, not "core". I translate config into json:
Variant for bad config:
{
"servers": [
{
"core": {
"server_name1": "some.example.com",
"locations": [ // <<<
{
"location": "/",
"proxy": {
"pass": "http://127.0.0.1:8080"
}
}
]
}
}
]
}
And variant for correct config:
{
"servers": [
{
"core": {
"server_name1": "some.example.com"
},
"locations": [ // <<<
{
"location": "/",
"proxy": {
"pass": "http://127.0.0.1:8080"
}
}
]
}
]
}
Ah, right, I see. Thanks for the extra info!