Table of contents
Oke sampai di session 3 di session yang sebelum nya kita sudah membuat web landing page di 2 server, dan database mariadb. Sekarang kita akan coba menggunakan teknik load balancing agar traffic dari user tersebar pada 2 server yang sudah kita buat.
Create Role Load Balancing
buat folder dengan nama nginx-load-balancer, didalamnya di buat folder tasks.
main.yaml
- name: delete default config nginx
file:
path: '{{ item }}'
state: absent
loop:
- /etc/nginx/sites-available/default
- /etc/nginx/sites-enabled/default
- name: copy nginx config
template:
src: templates/default.j2
dest: /etc/nginx/sites-available/default
- name: symbolik link nginx
file:
src: /etc/nginx/sites-available/default
dest: /etc/nginx/sites-enabled/default
state: link
notify:
- reload nginx
selanjutnya kita buat folder templates di folder nginx-load-balancer. template ini merupakan konfigurasi dari load balancer nginx.
default.j2
upstream backend {
{% for s in server %}
server {{ s.host }};
{% endfor %}
}
server {
listen 80;
server_name {{ domain }};
location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://backend;
}
}
sehabis kita buat template selanjut nya kita buat reload nginx dengan folder handlers dan di dalam nya
main.yaml
- name: reload nginx
service:
name: nginx
state: reloaded
jika sudah selanjutnya create playbook dari load balancer.
load-balancer-playbook.yaml
- name: setup load balancer server
hosts: load-balancer
become: yes
roles:
- roles/update-os
- roles/nginx
- role: roles/nginx-load-balancer
vars:
domain: landingpage.****.me
server:
- name: landing-page-1
host: ***
- name: landing-page-2
host: ****
yang *** sesuaikan dengan konfigurasi yang di perlukan.
~/studi-kasus$ ansible-playbook -i inventory load-balancer-playbook.yaml
Tunggu dan coba akses kembali web server, refresh browser F5 akan terlihat IP berpindah2 tanda nya load balancer sudah aktif.
Mohon di pahami ya jangan langsung copas2 saja konfigurasi yang sudah di buat.
Sekiaan..