This commit is contained in:
2024-11-12 23:14:17 +03:00
parent df19e70c88
commit f803c5c74b
26 changed files with 332 additions and 241 deletions

View File

@ -1,28 +0,0 @@
- name: Start and enable firewalld
service:
name: firewalld
state: started
enabled: true
tags: firewall
- name: Open port 80 for HTTP
ansible.builtin.firewalld:
port: 80/tcp
permanent: true
state: enabled
immediate: yes
tags: firewall
- name: Open port 443 for HTTPS
ansible.builtin.firewalld:
port: 443/tcp
permanent: true
state: enabled
immediate: yes
tags: firewall
- name: Reload firewalld to apply changes
ansible.builtin.service:
name: firewalld
state: reloaded
tags: firewall

View File

@ -1,11 +0,0 @@
- name: Configure Nginx as HTTPS proxy
template:
src: proxy.conf.j2
dest: /etc/nginx/conf.d/proxy.conf
tags: proxy
- name: Restart Nginx
service:
name: nginx
state: restarted
tags: proxy

View File

@ -1,24 +0,0 @@
- name: Create site directories
file:
path: "/var/www/{{ site_name }}"
state: directory
mode: '0755'
tags: configure_site
- name: Deploy site content
template:
src: site_index.html.j2
dest: "/var/www/{{ site_name }}/index.html"
tags: configure_site
- name: Configure Nginx for {{ site_name }}
template:
src: nginx_site.conf.j2
dest: "/etc/nginx/conf.d/{{ site_name }}.conf"
tags: configure_site
- name: Restart Nginx
service:
name: nginx
state: restarted
tags: configure_site

View File

@ -1,26 +0,0 @@
- name: Ensure SSL directory exists
file:
path: /etc/nginx/ssl
state: directory
mode: '0700'
tags: ssl
- name: Generate private key
openssl_privatekey:
path: /etc/nginx/ssl/{{ proxy_name }}.key
size: 2048
type: RSA
mode: '0600'
owner: root
group: root
tags: ssl
- name: Generate self-signed SSL certificate
openssl_certificate:
path: /etc/nginx/ssl/{{ proxy_name }}.crt
privatekey_path: /etc/nginx/ssl/{{ proxy_name }}.key
owner: root
group: root
mode: '0600'
provider: selfsigned
tags: ssl

View File

@ -1,7 +0,0 @@
- name: Install Nginx
zypper:
name: nginx
state: present
force: yes
update_cache: yes
tags: install

View File

@ -1,14 +0,0 @@
- import_tasks: install.yml
tags: install
- import_tasks: configure_site.yml
tags: configure_site
- import_tasks: configure_firewall.yml
tags: firewall
- import_tasks: generate_ssl.yml
tags: ssl
- import_tasks: configure_proxy.yml
tags: proxy

View File

@ -1,9 +0,0 @@
server {
listen 80;
server_name {{ site_name }};
location / {
root /var/www/{{ site_name }};
index index.html;
}
}

View File

@ -1,26 +0,0 @@
upstream backend_servers {
server {{ backend_ip_1 }}:80;
server {{ backend_ip_2 }}:80;
}
server {
listen 80;
server_name {{ proxy_name }};
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name {{ proxy_name }};
ssl_certificate /etc/nginx/ssl/{{ proxy_name }}.crt;
ssl_certificate_key /etc/nginx/ssl/{{ proxy_name }}.key;
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $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;
}
}

View File

@ -1,10 +0,0 @@
<html>
<head>
<meta charset="UTF-8">
<title>{{ site_name }}</title>
</head>
<body>
<h1>{{ site_name }}</h1>
<p>{{ additional_content }}</p>
</body>
</html>

View File

@ -1,5 +0,0 @@
site_name: "example_site"
proxy_name: "proxy_server"
backend_ip_1: "192.168.0.61"
backend_ip_2: "192.168.0.62"
additional_content: "Welcome to {{ site_name }}"