diff --git a/roles/nginx/defaults/main.yml b/roles/nginx/defaults/main.yml index 6fa1b2b..e44e810 100644 --- a/roles/nginx/defaults/main.yml +++ b/roles/nginx/defaults/main.yml @@ -1,3 +1,4 @@ --- nginx_certificate_path: /etc/sce-certbot -nginx_sites: [] +nginx_proxy_pass: [] +nginx_grpc_pass: [] diff --git a/roles/nginx/tasks/grpc-pass.yml b/roles/nginx/tasks/grpc-pass.yml new file mode 100644 index 0000000..781a158 --- /dev/null +++ b/roles/nginx/tasks/grpc-pass.yml @@ -0,0 +1,16 @@ +--- +- name: Install nginx template + ansible.builtin.template: + src: grpc-pass.j2 + dest: /etc/nginx/sites-available/{{ site_name }} + mode: "0644" + notify: Reload nginx + +- name: Activate nginx configuration + ansible.builtin.file: + src: /etc/nginx/sites-available/{{ site_name }} + dest: /etc/nginx/sites-enabled/{{ site_name }} + owner: root + group: root + state: link + notify: Reload nginx diff --git a/roles/nginx/tasks/main.yml b/roles/nginx/tasks/main.yml index b1e895c..9ff132f 100644 --- a/roles/nginx/tasks/main.yml +++ b/roles/nginx/tasks/main.yml @@ -24,9 +24,17 @@ path: /etc/nginx/passwdfile register: htpasswdfile -- name: Iterate over configured nginx sites - ansible.builtin.include_tasks: site.yml - loop: "{{ nginx_sites }}" +- name: Iterate over configured nginx sites (proxy pass) + ansible.builtin.include_tasks: proxy-pass.yml + loop: "{{ nginx_proxy_pass }}" + vars: + site_name: "{{ item['name'] }}" + site_port: "{{ item['port'] }}" + site_cert: "{{ item['cert'] }}" + +- name: Iterate over configured nginx sites (grpc pass) + ansible.builtin.include_tasks: grpc-pass.yml + loop: "{{ nginx_grpc_pass }}" vars: site_name: "{{ item['name'] }}" site_port: "{{ item['port'] }}" diff --git a/roles/nginx/tasks/site.yml b/roles/nginx/tasks/proxy-pass.yml similarity index 96% rename from roles/nginx/tasks/site.yml rename to roles/nginx/tasks/proxy-pass.yml index fadfe44..9f760f1 100644 --- a/roles/nginx/tasks/site.yml +++ b/roles/nginx/tasks/proxy-pass.yml @@ -6,7 +6,7 @@ - name: Install nginx template ansible.builtin.template: - src: nginx-server.j2 + src: proxy-pass.j2 dest: /etc/nginx/sites-available/{{ site_name }} mode: "0644" vars: diff --git a/roles/nginx/templates/grpc-pass.j2 b/roles/nginx/templates/grpc-pass.j2 new file mode 100644 index 0000000..2e94f69 --- /dev/null +++ b/roles/nginx/templates/grpc-pass.j2 @@ -0,0 +1,14 @@ +# {{ ansible_managed }} +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + + server_name {{ site_name }}; + + ssl_certificate {{ nginx_certificate_path }}/{{ site_cert }}/fullchain.pem; + ssl_certificate_key {{ nginx_certificate_path }}/{{ site_cert }}/privkey.pem; + + location / { + grpc_pass grpc://127.0.0.1:{{ site_port }}; + } +} diff --git a/roles/nginx/templates/nginx-server.j2 b/roles/nginx/templates/proxy-pass.j2 similarity index 100% rename from roles/nginx/templates/nginx-server.j2 rename to roles/nginx/templates/proxy-pass.j2