Skip to main content

Konfigurasi Ansible Role Webserver Nginx

Berikut adalah panduan contoh saja use case dengan simple http nginx belum https untuk membuat role Ansible yang mengatur Nginx dengan template untuk menambahkan virtual host `www.sabang.net` misalnya:


### Langkah 1: Menentukan Struktur Peran


Pertama, buat struktur direktori yang diperlukan untuk peran Ansible.


```bash

mkdir -p roles/nginx/{tasks,templates,defaults,handlers}

```


### Langkah 2: Buat `defaults/main.yml`


File ini akan mendefinisikan variabel default untuk peran.


```yaml

# roles/nginx/defaults/main.yml

nginx_user: www-data

nginx_conf_dir: /etc/nginx

nginx_vhost_template: nginx_vhost.j2

nginx_sites_available_dir: "{{ nginx_conf_dir }}/sites-available"

nginx_sites_enabled_dir: "{{ nginx_conf_dir }}/sites-enabled"

nginx_domain: www.sabang.net

nginx_root: /var/www/{{ nginx_domain }}

```


### Langkah 3: Buat `tasks/main.yml`


File ini akan berisi tugas-tugas untuk menginstal dan mengonfigurasi Nginx.


```yaml

# roles/nginx/tasks/main.yml

---

- name: Pastikan Nginx terinstal

  apt:

    name: nginx

    state: present

  become: true


- name: Pastikan layanan Nginx diaktifkan dan dijalankan

  service:

    name: nginx

    state: started

    enabled: true

  become: true


- name: Buat direktori root dokumen

  file:

    path: "{{ nginx_root }}"

    state: directory

    owner: "{{ nginx_user }}"

    group: "{{ nginx_user }}"

    mode: '0755'

  become: true


- name: Template konfigurasi virtual host Nginx

  template:

    src: "{{ nginx_vhost_template }}"

    dest: "{{ nginx_sites_available_dir }}/{{ nginx_domain }}"

  notify:

    - Reload Nginx

  become: true


- name: Aktifkan virtual host

  file:

    src: "{{ nginx_sites_available_dir }}/{{ nginx_domain }}"

    dest: "{{ nginx_sites_enabled_dir }}/{{ nginx_domain }}"

    state: link

  become: true

```


### Langkah 4: Buat `handlers/main.yml`


File ini akan mendefinisikan handler untuk me-reload Nginx saat konfigurasi berubah.


```yaml

# roles/nginx/handlers/main.yml

---

- name: Reload Nginx

  service:

    name: nginx

    state: reloaded

  become: true

```


### Langkah 5: Buat Template Virtual Host Nginx


Template Jinja2 ini akan mendefinisikan konfigurasi virtual host untuk Nginx.


```nginx

# roles/nginx/templates/nginx_vhost.j2

server {

    listen 80;

    server_name {{ nginx_domain }};


    root {{ nginx_root }};

    index index.html index.htm;


    location / {

        try_files $uri $uri/ =404;

    }


    error_page 500 502 503 504 /50x.html;

    location = /50x.html {

        root /usr/share/nginx/html;

    }

}

```


### Langkah 6: Gunakan Roles dalam Playbook


Terakhir, buat playbook untuk menerapkan peran.


```yaml

# playbook.yml

---

- hosts: webservers

  become: true

  roles:

    - nginx

```


### Langkah 7: Jalankan Playbook


Jalankan playbook untuk mengatur Nginx dan mengonfigurasi virtual host.


```bash

ansible-playbook -i inventory playbook.yml

```


Ganti `inventory` dengan file inventory Anda, dan pastikan grup `webservers` dalam file inventory Anda menyertakan host target.

Untuk script ansible lengkapnya: https://github.com/bagussa/ITNSA-Ansible-Config-Mgmt

Setup ini akan menginstal Nginx, membuat direktori root dokumen, dan mengonfigurasi virtual host untuk `www.sabang.net`. Sesuaikan path dan konfigurasi sesuai kebutuhan lingkungan Anda.

Comments

Popular posts from this blog

ITNSA Konfigurasi Ansible WinRM Windows Server

 ### Mengonfigurasi Koneksi Ansible ke Server Windows Ansible adalah alat otomatisasi yang sangat populer dan sering digunakan untuk mengelola berbagai jenis server, termasuk server Windows. Artikel ini akan memandu Anda melalui langkah-langkah untuk mengonfigurasi Ansible agar dapat terhubung dengan server Windows menggunakan WinRM (Windows Remote Management). #### 1. Menyiapkan WinRM di Server Windows ##### Opsi 1: Menggunakan Skrip PowerShell Anda bisa menggunakan skrip PowerShell yang sudah disediakan untuk mengonfigurasi WinRM agar dapat digunakan oleh Ansible. 1. Buka PowerShell di server Windows Anda sebagai administrator. 2. Jalankan perintah berikut untuk mengunduh dan mengeksekusi skrip konfigurasi:    ```powershell    iex (New-Object Net.WebClient).DownloadString('https://github.com/ansible/ansible/raw/devel/examples/scripts/ConfigureRemotingForAnsible.ps1')    ``` ##### Opsi 2: Pengaturan Manual 1. Buka PowerShell di server Windows Anda sebagai administrator. 2. Jal

Soal dan pembahasan LKSN ITNSA

Berikut adalah koleksi soal-soal ITNSA dan beberapa website yang memberikan pembahasan pada event perlombaaan LKS SMK Nasional bidang lomba IT Network Systems Administration. 2014 Palembang Di tahun ini ada 1 soal packet tracer. Di website dibawah ini diberikan juga cara pembahasannya. https://agussas.wordpress.com/2015/04/02/review-soal-lks-nasional-it-network-23-packet-tracer-challenge/ Semua soal:  https://www.dropbox.com/sh/l90zyke2ib5msgv/AAA3kPOFo-zEn4wPOW4a3iMwa?dl=0 dan https://drive.google.com/file/d/18lDhtMjAnPAhkfOJ6uFHsC5j6ycg3K4I/view Pembahasan juga dalam bentuk video di youtube:  https://www.youtube.com/watch?v=8QML594nQBU 2015 Banten Pembahasan:   https://www.youtube.com/watch?v=quDbpC2xSfQ Soal:  https://drive.google.com/file/d/1B09IYfdoGENBL3txSQodpptG1zdQxBWI/view 2016 Malang Soal:   https://drive.google.com/file/d/13-2bRtb5IXO9vxAhLfhghZbDXeUzD0FI/view Pembahasan:   https://www.youtube.com/watch?v=zmUSUZguH24 2017 Solo Soal dan pembahasan

Pembahasan ITNSA Ansible Postfix

Ansible adalah salah satu tool untuk melakukan otomasi konfigurasi server yang bisa dilakukan berulang-ulang atau dikenal juga configuration management,  dalam tutorial kali ini akan melakukan otomasi salah satu task dasar dalam bidang ITNSA yang sering muncul, ini bukan soal yang ada langsung dalam ITNSA namun ini adalah salah satu bahan pelajaran aja yang barangkali bisa dijadikan sebagai referensi untuk konfigurasi system lainnya.  btw ITNSA adalah kependekan dari bidang IT Network System Administration nama bidang lomba yang mulai dari tingkat kab/kota untuk SMK atau kalau di SMA namanya OSN, yang mana punya tingkatan juga baik dalam kab/kota, provinsi, nasional, sampai internasional. Okay sebelum itu pastikan kita sudah punya dasar pengetahuan tentang SSH, Ansible cara koneksi nya gmana cara membuat ssh key nya. Bisa juga baca tutorial ini terlebih dahulu  Pembahasan Ansible ITNSA Dasar Okay mari kita bahas cara konfigurasi Postfix, sebelumnya pastikan juga kita sudah punya pengal