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

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 Soal CA LKS Nasional ITNSA 2022

 Berikut adalah salah satu soal mengenai CA dan pembahasannya, silakan dicoba dan sesuikan dengan kondisi real sebenarnya pada saat kompetisi, karena mungkin di kota, provinsi atau soal nasional selanjutnya ada perubahan seperti kalimat, lokasi folder, nama server dan penamaan lainnya Silakan sesuaikan nama file, nama domain, dll. Certificate Authority  ● Configure MAIL as Root CA.  1.  openssl genrsa -out root.key 4096 ○ Use Common Name: LKSN2022-Root  2.  openssl req -new -x509 -days 1826 -key root.key -out root.crt ○ Approve Intermediate CA Requests for MON1 and MON2. Jawaban ada di perintah 4 dan 6  ○ Save those two Intermediate CA certificate files without the key in directory /backup in MAIL server.  Ini cukup kopikan file mon1.crt dan mon2.crt ke /backup Bikin config untuk Intermediatte CA, bisa mencontoh di /etc/ssl/openssl.cnf juga. Disini simple cukup membuat konfigurasi seperti dibawah ini buat file subca.cnf berisi: [ req ] extensions    = v3_subca req_extensions    = v3

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