7 changed files with 159 additions and 259 deletions
-
2CHANGELOG.md
-
2nginx/defaults/main.yml
-
151nginx/tasks/main.yml
-
40nginx/tasks/main_minimal.yml
-
182nginx/tasks/main_regular.yml
-
10nginx/tasks/packages.yml
-
31nginx/templates/evolinux-default.minimal.conf.j2
@ -1,7 +1,152 @@ |
|||
--- |
|||
|
|||
- include: main_minimal.yml |
|||
- debug: |
|||
msg: "Nginx minimal mode has been removed, falling back to normal mode." |
|||
when: nginx_minimal |
|||
|
|||
- include: main_regular.yml |
|||
when: not nginx_minimal |
|||
- include: packages.yml |
|||
|
|||
- include: server_status_read.yml |
|||
tags: |
|||
- nginx |
|||
|
|||
# TODO: find a way to override the main configuration |
|||
# without touching the main file |
|||
|
|||
- name: customize worker_connections |
|||
lineinfile: |
|||
dest: /etc/nginx/nginx.conf |
|||
regexp: '^(\s*worker_connections)\s+.+;' |
|||
line: ' worker_connections 1024;' |
|||
insertafter: 'events \{' |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: use epoll |
|||
lineinfile: |
|||
dest: /etc/nginx/nginx.conf |
|||
regexp: '^(\s*use)\s+.+;' |
|||
line: ' use epoll;' |
|||
insertafter: 'events \{' |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: Install Nginx http configuration |
|||
copy: |
|||
src: nginx/evolinux-defaults.conf |
|||
dest: /etc/nginx/conf.d/z-evolinux-defaults.conf |
|||
mode: "0640" |
|||
# force: yes |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
|
|||
# TODO: verify that those permissions are correct : |
|||
# not too strict for ipaddr_whitelist |
|||
# and not too loose for private_htpasswd |
|||
|
|||
- name: Copy ipaddr_whitelist |
|||
copy: |
|||
src: nginx/snippets/ipaddr_whitelist |
|||
dest: /etc/nginx/snippets/ipaddr_whitelist |
|||
owner: www-data |
|||
group: www-data |
|||
directory_mode: "0640" |
|||
mode: "0640" |
|||
force: no |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
- ips |
|||
|
|||
- name: Include IP address whitelist task |
|||
include: ip_whitelist.yml |
|||
|
|||
- name: Copy private_htpasswd |
|||
copy: |
|||
src: nginx/snippets/private_htpasswd |
|||
dest: /etc/nginx/snippets/private_htpasswd |
|||
owner: www-data |
|||
group: www-data |
|||
directory_mode: "0640" |
|||
mode: "0640" |
|||
force: no |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: add user:pwd to private htpasswd |
|||
lineinfile: |
|||
dest: /etc/nginx/snippets/private_htpasswd |
|||
line: "{{ item }}" |
|||
state: present |
|||
with_items: "{{ nginx_private_htpasswd_present }}" |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: remove user:pwd from private htpasswd |
|||
lineinfile: |
|||
dest: /etc/nginx/snippets/private_htpasswd |
|||
line: "{{ item }}" |
|||
state: absent |
|||
with_items: "{{ nginx_private_htpasswd_absent }}" |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: nginx vhost is installed |
|||
template: |
|||
src: "{{ nginx_default_template_regular }}" |
|||
dest: /etc/nginx/sites-available/evolinux-default.conf |
|||
mode: "0640" |
|||
force: "{{ nginx_force_default_template | default(False) }}" |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: default vhost is enabled |
|||
file: |
|||
src: /etc/nginx/sites-available/evolinux-default.conf |
|||
dest: /etc/nginx/sites-enabled/default |
|||
state: link |
|||
force: yes |
|||
notify: reload nginx |
|||
when: nginx_evolinux_default_enabled |
|||
tags: |
|||
- nginx |
|||
|
|||
- include: server_status_write.yml |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: Verify that the service is enabled and started |
|||
service: |
|||
name: nginx |
|||
enabled: yes |
|||
state: started |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: Check if Munin is installed |
|||
stat: |
|||
path: /etc/munin/plugin-conf.d/munin-node |
|||
check_mode: no |
|||
register: stat_munin_node |
|||
tags: |
|||
- nginx |
|||
- munin |
|||
|
|||
- include: munin_vhost.yml |
|||
when: stat_munin_node.stat.exists |
|||
tags: |
|||
- nginx |
|||
- munin |
|||
|
|||
- include: munin_graphs.yml |
|||
when: stat_munin_node.stat.exists |
|||
tags: |
|||
- nginx |
|||
- munin |
|||
|
|||
- include: logrotate.yml |
@ -1,40 +0,0 @@ |
|||
--- |
|||
- name: Ensure Nginx is installed |
|||
apt: |
|||
name: |
|||
- nginx-light |
|||
- ssl-cert |
|||
state: present |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
- packages |
|||
|
|||
- name: Copy default vhost |
|||
template: |
|||
src: "{{ nginx_default_template_minimal }}" |
|||
dest: /etc/nginx/sites-available/evolinux-default.minimal.conf |
|||
mode: 0644 |
|||
force: "{{ nginx_force_default_template | default(False) }}" |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
- packages |
|||
|
|||
- name: Enable default vhost |
|||
file: |
|||
src: /etc/nginx/sites-available/evolinux-default.minimal.conf |
|||
dest: /etc/nginx/sites-enabled/default |
|||
state: link |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
- packages |
|||
|
|||
- name: Ensure Nginx is enabled |
|||
service: |
|||
name: nginx |
|||
state: started |
|||
enabled: yes |
|||
tags: |
|||
- nginx |
@ -1,182 +0,0 @@ |
|||
--- |
|||
|
|||
- include: packages.yml |
|||
|
|||
- include: server_status_read.yml |
|||
tags: |
|||
- nginx |
|||
|
|||
# TODO: find a way to override the main configuration |
|||
# without touching the main file |
|||
|
|||
- name: customize worker_connections |
|||
lineinfile: |
|||
dest: /etc/nginx/nginx.conf |
|||
regexp: '^(\s*worker_connections)\s+.+;' |
|||
line: ' worker_connections 1024;' |
|||
insertafter: 'events \{' |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: use epoll |
|||
lineinfile: |
|||
dest: /etc/nginx/nginx.conf |
|||
regexp: '^(\s*use)\s+.+;' |
|||
line: ' use epoll;' |
|||
insertafter: 'events \{' |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: Install Nginx http configuration |
|||
copy: |
|||
src: nginx/evolinux-defaults.conf |
|||
dest: /etc/nginx/conf.d/z-evolinux-defaults.conf |
|||
mode: "0640" |
|||
# force: yes |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
|
|||
# TODO: verify that those permissions are correct : |
|||
# not too strict for ipaddr_whitelist |
|||
# and not too loose for private_htpasswd |
|||
|
|||
- name: Copy ipaddr_whitelist |
|||
copy: |
|||
src: nginx/snippets/ipaddr_whitelist |
|||
dest: /etc/nginx/snippets/ipaddr_whitelist |
|||
owner: www-data |
|||
group: www-data |
|||
directory_mode: "0640" |
|||
mode: "0640" |
|||
force: no |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
- ips |
|||
|
|||
- name: Include IP address whitelist task |
|||
include: ip_whitelist.yml |
|||
|
|||
- name: Copy private_htpasswd |
|||
copy: |
|||
src: nginx/snippets/private_htpasswd |
|||
dest: /etc/nginx/snippets/private_htpasswd |
|||
owner: www-data |
|||
group: www-data |
|||
directory_mode: "0640" |
|||
mode: "0640" |
|||
force: no |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: add user:pwd to private htpasswd |
|||
lineinfile: |
|||
dest: /etc/nginx/snippets/private_htpasswd |
|||
line: "{{ item }}" |
|||
state: present |
|||
with_items: "{{ nginx_private_htpasswd_present }}" |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: remove user:pwd from private htpasswd |
|||
lineinfile: |
|||
dest: /etc/nginx/snippets/private_htpasswd |
|||
line: "{{ item }}" |
|||
state: absent |
|||
with_items: "{{ nginx_private_htpasswd_absent }}" |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: nginx vhost is installed |
|||
template: |
|||
src: "{{ nginx_default_template_regular }}" |
|||
dest: /etc/nginx/sites-available/evolinux-default.conf |
|||
mode: "0640" |
|||
force: "{{ nginx_force_default_template | default(False) }}" |
|||
notify: reload nginx |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: default vhost is enabled |
|||
file: |
|||
src: /etc/nginx/sites-available/evolinux-default.conf |
|||
dest: /etc/nginx/sites-enabled/default |
|||
state: link |
|||
force: yes |
|||
notify: reload nginx |
|||
when: nginx_evolinux_default_enabled |
|||
tags: |
|||
- nginx |
|||
|
|||
- include: server_status_write.yml |
|||
tags: |
|||
- nginx |
|||
|
|||
# - block: |
|||
# - name: generate random string for phpmyadmin suffix |
|||
# command: "apg -a 1 -M N -n 1" |
|||
# changed_when: False |
|||
# register: random_phpmyadmin_suffix |
|||
# |
|||
# - name: overwrite nginx_phpmyadmin_suffix |
|||
# set_fact: |
|||
# nginx_phpmyadmin_suffix: "{{ random_phpmyadmin_suffix.stdout }}" |
|||
# when: nginx_phpmyadmin_suffix == "" |
|||
# |
|||
# - name: replace phpmyadmin suffix in default site index |
|||
# replace: |
|||
# dest: /var/www/index.html |
|||
# regexp: '__PHPMYADMIN_SUFFIX__' |
|||
# replace: "{{ nginx_phpmyadmin_suffix }}" |
|||
# |
|||
# - block: |
|||
# - name: generate random string for serverstatus suffix |
|||
# command: "apg -a 1 -M N -n 1" |
|||
# changed_when: False |
|||
# register: random_serverstatus_suffix |
|||
# |
|||
# - name: overwrite nginx_serverstatus_suffix |
|||
# set_fact: |
|||
# nginx_serverstatus_suffix: "{{ random_phpmyadmin_suffix.stdout }}" |
|||
# when: nginx_serverstatus_suffix == "" |
|||
# |
|||
# - name: replace server-status suffix in default site index |
|||
# replace: |
|||
# dest: /var/www/index.html |
|||
# regexp: '__SERVERSTATUS_SUFFIX__' |
|||
# replace: "{{ nginx_serverstatus_suffix }}" |
|||
|
|||
- name: Verify that the service is enabled and started |
|||
service: |
|||
name: nginx |
|||
enabled: yes |
|||
state: started |
|||
tags: |
|||
- nginx |
|||
|
|||
- name: Check if Munin is installed |
|||
stat: |
|||
path: /etc/munin/plugin-conf.d/munin-node |
|||
check_mode: no |
|||
register: stat_munin_node |
|||
tags: |
|||
- nginx |
|||
- munin |
|||
|
|||
- include: munin_vhost.yml |
|||
when: stat_munin_node.stat.exists |
|||
tags: |
|||
- nginx |
|||
- munin |
|||
|
|||
- include: munin_graphs.yml |
|||
when: stat_munin_node.stat.exists |
|||
tags: |
|||
- nginx |
|||
- munin |
|||
|
|||
- include: logrotate.yml |
@ -1,31 +0,0 @@ |
|||
server { |
|||
listen 80 default_server; |
|||
listen [::]:80 default_server; |
|||
|
|||
listen 443 ssl default_server; |
|||
listen [::]:443 ssl default_server; |
|||
|
|||
if ($host != "{{ ansible_fqdn }}") { |
|||
rewrite ^ https://{{ ansible_fqdn }}$request_uri permanent; |
|||
} |
|||
|
|||
include snippets/snakeoil.conf; |
|||
|
|||
if ($https != "on") { |
|||
return 301 https://{{ ansible_fqdn }}$request_uri; |
|||
} |
|||
|
|||
root /var/www/; |
|||
|
|||
location /munin { |
|||
alias /var/cache/munin/www; |
|||
} |
|||
|
|||
index index.html; |
|||
|
|||
server_name _; |
|||
|
|||
location / { |
|||
try_files $uri $uri/ =404; |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue