Skip to content

Commit

Permalink
[nginx] Add tags to tasks included dynamically
Browse files Browse the repository at this point in the history
(cherry picked from commit 99541bb)
(cherry picked from commit 6f8d88f)
  • Loading branch information
drybjed committed Jan 26, 2024
1 parent 1e59b51 commit d1496c7
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 0 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.rst
Expand Up @@ -45,6 +45,15 @@ Changed

- The role now supports new Elasticsearch v8.x password management mechanism.

Fixed
~~~~~

:ref:`debops.nginx` role
''''''''''''''''''''''''

- Fixed issue with ``role::nginx:servers` Ansible tag not working correctly by
adding tags to tasks included dynamically.
`debops v3.0.6`_ - 2023-11-29
-----------------------------
Expand Down
9 changes: 9 additions & 0 deletions ansible/roles/nginx/tasks/nginx_configs.yml
Expand Up @@ -11,6 +11,7 @@
owner: 'root'
group: 'root'
mode: '0755'
tags: [ 'role::nginx:servers' ]

- name: Remove nginx maps if requested
file:
Expand All @@ -27,6 +28,7 @@
when: (item.name|d() and
((item.state|d() and item.state == 'absent') or
(item.delete|d() and item.delete|bool)))
tags: [ 'role::nginx:servers' ]

- name: Configure nginx maps
template:
Expand All @@ -45,6 +47,7 @@
notify: [ 'Test nginx and reload' ]
when: (item.name|d() and item.state|d('present') != 'absent' and
(item.delete is undefined or not item.delete|bool))
tags: [ 'role::nginx:servers' ]

- name: Remove nginx upstreams if requested
file:
Expand All @@ -61,6 +64,7 @@
when: (item.name|d() and
((item.state|d('present') == 'absent') or
(item.delete|d() and item.delete|bool)))
tags: [ 'role::nginx:servers' ]

- name: Configure nginx upstreams
template:
Expand All @@ -79,6 +83,7 @@
notify: [ 'Test nginx and reload' ]
when: (item.name|d() and item.state|d('present') != 'absent' and
(item.delete is undefined or not item.delete|bool))
tags: [ 'role::nginx:servers' ]

- name: Remove nginx log_format if requested
file:
Expand All @@ -91,6 +96,7 @@
when: (item.name|d() and
((item.state|d('present') == 'absent') or
(item.delete|d() and item.delete|bool)))
tags: [ 'role::nginx:servers' ]

- name: Configure nginx log_format
template:
Expand All @@ -105,6 +111,7 @@
notify: [ 'Test nginx and reload' ]
when: (item.name|d() and item.state|d('present') != 'absent' and
(item.delete is undefined or not item.delete|bool))
tags: [ 'role::nginx:servers' ]

- name: Remove custom nginx configuration if requested
file:
Expand All @@ -117,6 +124,7 @@
when: (item.name|d() and
((item.state|d() and item.state == 'absent') or
(item.delete|d() and item.delete|bool)))
tags: [ 'role::nginx:servers' ]

- name: Add custom nginx configuration
template:
Expand All @@ -131,3 +139,4 @@
notify: [ 'Test nginx and reload' ]
when: (item.name|d() and item.state|d('present') != 'absent' and
(item.delete is undefined or not item.delete|bool))
tags: [ 'role::nginx:servers' ]
17 changes: 17 additions & 0 deletions ansible/roles/nginx/tasks/nginx_servers.yml
Expand Up @@ -27,6 +27,7 @@
- '{{ nginx_dependent_servers | d([]) }}'
when: ((item.webroot_create|d(nginx_webroot_create)|bool) and
item.state|d('present') != 'absent')
tags: [ 'role::nginx:servers' ]

- name: Create default welcome page if enabled
template:
Expand Down Expand Up @@ -55,6 +56,7 @@
item.state|d('present') != 'absent' and
(item.delete is undefined or not item.delete|bool) and
(item.welcome|d() | bool))
tags: [ 'role::nginx:servers' ]

- name: Copy 'normalize.css' CSS file for welcome page
template:
Expand Down Expand Up @@ -83,6 +85,7 @@
item.state|d('present') != 'absent' and
(item.delete is undefined or not item.delete|bool) and
(item.welcome|d() | bool))
tags: [ 'role::nginx:servers' ]

- name: Remove nginx server configuration if requested
file:
Expand All @@ -101,28 +104,33 @@
- '{{ nginx_dependent_servers | d([]) }}'
when: (item.name is defined and
((item.state|d("present") == 'absent') or (item.delete|d()|bool)))
tags: [ 'role::nginx:servers' ]

- name: Get last used HTTP default_server for default_server roulette
set_fact:
nginx_register_default_server_saved: '{{ ansible_local.nginx.default_server }}'
when: (ansible_local is defined and ansible_local.nginx is defined and
ansible_local.nginx.default_server is defined)
tags: [ 'role::nginx:servers' ]

- name: Get last used HTTPS default_server for default_server roulette
set_fact:
nginx_register_default_server_ssl_saved: '{{ ansible_local.nginx.default_server_ssl }}'
when: (ansible_local is defined and ansible_local.nginx is defined and
ansible_local.nginx.default_server_ssl is defined)
tags: [ 'role::nginx:servers' ]

- name: Get HTTP server from nginx defaults for default_server roulette
set_fact:
nginx_register_default_server_name: '{{ nginx_default_name }}'
when: nginx_default_name is defined and nginx_default_name
tags: [ 'role::nginx:servers' ]

- name: Get HTTPS server from nginx defaults for default_server roulette
set_fact:
nginx_register_default_server_ssl_name: '{{ nginx_default_ssl_name }}'
when: nginx_default_ssl_name is defined and nginx_default_ssl_name
tags: [ 'role::nginx:servers' ]

- name: Get first server that listens on http port for default_server roulette
set_fact:
Expand All @@ -134,6 +142,7 @@
(item.enabled|d(True)|bool) and
(item.listen|d(True)) and
((item.ssl is undefined or not item.ssl | bool) or not nginx_pki | bool))
tags: [ 'role::nginx:servers' ]

- name: Get first server that listens on https port for default_server roulette
set_fact:
Expand All @@ -145,20 +154,23 @@
(item.listen_ssl is undefined or item.listen_ssl|d()) and
((item.ssl|d() and item.ssl | bool) or
(item.ssl is undefined and nginx_pki | bool)))
tags: [ 'role::nginx:servers' ]

- name: Spin the HTTP default_server roulette!
set_fact:
nginx_register_default_server: '{{ nginx_register_default_server_saved |
default(nginx_register_default_server_name |
default(nginx_register_default_server_http |
default(""))) }}'
tags: [ 'role::nginx:servers' ]

- name: Spin the HTTPS default_server roulette!
set_fact:
nginx_register_default_server_ssl: '{{ nginx_register_default_server_ssl_saved |
default(nginx_register_default_server_ssl_name |
default(nginx_register_default_server_https |
default(""))) }}'
tags: [ 'role::nginx:servers' ]

- name: Generate nginx server configuration
template:
Expand All @@ -181,6 +193,7 @@
notify: [ 'Test nginx and reload' ]
when: (item.state|d('present') != 'absent' and
(item.delete is undefined or not item.delete|bool))
tags: [ 'role::nginx:servers' ]

- name: Disable nginx server configuration
file:
Expand All @@ -201,16 +214,19 @@
((item.state|d("present") == 'absent') or
(item.enabled|d() and not item.enabled|bool) or
(item.delete|d()|bool)))
tags: [ 'role::nginx:servers' ]

## https://stackoverflow.com/a/28888474
- name: Test if Ansible is running in check mode
command: /bin/true
changed_when: False
register: nginx__register_check_mode
tags: [ 'role::nginx:servers' ]

- name: Save fact if Ansible is running in check mode in variable
set_fact:
nginx__fact_check_mode: '{{ nginx__register_check_mode is skipped }}'
tags: [ 'role::nginx:servers' ]

- name: Enable nginx server configuration
file:
Expand All @@ -236,3 +252,4 @@
(item.enabled|d(True)|bool) and
(item.delete is undefined or not item.delete|bool) and
not nginx__fact_check_mode|bool)
tags: [ 'role::nginx:servers' ]

0 comments on commit d1496c7

Please sign in to comment.