diff --git a/ansible/roles/gitlab-and-nginx/defaults/main.json b/ansible/roles/gitlab-and-nginx/defaults/main.json new file mode 100644 index 0000000..6bffbd7 --- /dev/null +++ b/ansible/roles/gitlab-and-nginx/defaults/main.json @@ -0,0 +1,4 @@ +{ + "var_gitlab_and_nginx_domain": "element.example.org", + "var_gitlab_and_nginx_path": "/opt/element" +} diff --git a/ansible/roles/gitlab-and-nginx/tasks/main.json b/ansible/roles/gitlab-and-nginx/tasks/main.json new file mode 100644 index 0000000..7fc22b8 --- /dev/null +++ b/ansible/roles/gitlab-and-nginx/tasks/main.json @@ -0,0 +1,35 @@ +[ + { + "name": "deactivate default site", + "become": true, + "ansible.builtin.file": { + "state": "absent", + "dest": "/etc/nginx/sites-enabled/default" + } + }, + { + "name": "emplace configuration | data", + "become": true, + "ansible.builtin.template": { + "src": "conf.j2", + "dest": "/etc/nginx/sites-available/{{var_gitlab_and_nginx_domain}}" + } + }, + { + "name": "emplace configuration | link", + "become": true, + "ansible.builtin.file": { + "state": "link", + "src": "/etc/nginx/sites-available/{{var_gitlab_and_nginx_domain}}", + "dest": "/etc/nginx/sites-enabled/{{var_gitlab_and_nginx_domain}}" + } + }, + { + "name": "restart nginx", + "become": true, + "ansible.builtin.systemd_service": { + "state": "restarted", + "name": "nginx" + } + } +] diff --git a/ansible/roles/gitlab-and-nginx/templates/conf.j2 b/ansible/roles/gitlab-and-nginx/templates/conf.j2 new file mode 100644 index 0000000..79d1004 --- /dev/null +++ b/ansible/roles/gitlab-and-nginx/templates/conf.j2 @@ -0,0 +1,35 @@ +server { + listen 80 default_server; + listen [::]:80 ipv6only=on default_server; + + server_name {{var_gitlab_and_nginx_domain}}; + + return 301 https://$server_name$request_uri; access_log /var/log/nginx/gitlab_access.log; + + error_log /var/log/nginx/gitlab_error.log; +} + +server { + listen 443 ssl default_server; + listen [::]:443 ipv6only=on ssl default_server; + + server_name {{var_gitlab_and_nginx_domain}}; + + ssl_certificate /etc/ssl/fullchains/{{var_gitlab_and_nginx_domain}}.pem; + ssl_certificate_key /etc/ssl/private/{{var_gitlab_and_nginx_domain}}.pem; + + server_tokens off; location ~ /.well-known { + allow all; + } + + location / { + proxy_pass http://localhost:8081; + proxy_redirect off; + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Protocol $scheme; + proxy_set_header X-Url-Scheme $scheme; + } +}