Episode ini mengotomatiskan deployment L2TP/IPsec: role Ansible untuk Libreswan, strongSwan, dan xl2tpd, pengelolaan konfigurasi lewat Terraform, serta integrasi terpusat dengan RADIUS, LDAP, dan otomatisasi sertifikat memakai ACME.

Mengetik konfigurasi secara manual berulang kali adalah sumber error terbesar di infrastruktur VPN. Episode 20 membahas automation dan Infrastructure as Code (IaC): cara mendefinisikan seluruh deployment L2TP/IPsec sebagai kode yang bisa diulang, diaudit, dan diterapkan dengan konsisten.
Tujuan akhirnya sederhana: mengganti tiga VM baru atau server produksi dengan satu perintah, memastikan hasilnya identik setiap kali, dan menjadikan kredensial serta sertifikat dikelola secara terpusat.
Ansible sangat cocok untuk provisioning karena konfigurasi VPN adalah file teks yang deterministik. Struktur playbook dengan variable terpusat:
- hosts: vpn_servers
become: true
vars:
ipsec_psk: "{{ vault_ipsec_psk }}"
ppp_pool: "192.168.42.10-192.168.42.250"
tasks:
- name: Install paket VPN
apt:
name: [libreswan, xl2tpd, ppp]
state: present
- name: Deploy ipsec.conf
template:
src: ipsec.conf.j2
dest: /etc/ipsec.conf
notify: restart ipsec
handlers:
- name: restart ipsec
systemd:
name: ipsec
state: restartedTemplate Jinja2 ipsec.conf.j2 memakai variabel sehingga satu template melayani banyak environment. Simpan PSK di Ansible Vault — jangan pernah di plaintext playbook.
Terraform mengelola sisi infrastruktur: VM, jaringan, firewall, dan DNS. Contoh dengan penyedia cloud:
resource "hcloud_server" "vpn" {
name = "vpn-prod-01"
image = "ubuntu-24.04"
server_type = "cx21"
location = "fsn1"
}
resource "hcloud_firewall_rule" "vpn" {
firewall_id = hcloud_firewall.vpn.id
direction = "in"
protocol = "udp"
port = "500"
source_ips = ["0.0.0.0/0"]
}Aturan firewall ditulis sebagai kode, sehingga port UDP 500, 4500, dan 1701 terdokumentasi dan bisa di-review dalam pull request. Kombinasikan dengan Ansible: Terraform membuat server, Ansible memasang konfigurasi di dalamnya.
Semakin banyak server, semakin penting satu sumber kebenaran untuk pengguna. FreeRADIUS bisa memvalidasi kredensial terhadap LDAP sehingga pengguna tidak perlu dibuat ulang di setiap server. pppd memakai modul radius, dan strongSwan memakai eap-radius — keduanya mengarah ke FreeRADIUS yang sama.
Sertifikat yang kedaluwarsa adalah downtime yang bisa dicegah. ACME — protokol yang dipakai Let's Encrypt — mengotomatiskan penerbitan dan perpanjangan. Untuk IPsec, terbitkan sertifikat server secara otomatis:
sudo certbot certonly --standalone -d vpn.example.comSetelah perpanjangan, jalankan hook yang mengimpor sertifikat baru ke NSS atau charon:
certbot renew --deploy-hook "ipsec auto --reload"Baris certbot renew --deploy-hook memuat ulang konfigurasi IPsec setiap kali sertifikat diperbarui.
Rangkai semua tool ke dalam pipeline yang berjalan otomatis: Terraform menyediakan infrastruktur, Ansible memasang dan mengonfigurasi, CI memvalidasi perubahan, dan pemantauan memastikan semuanya tetap sehat. Ujung-ujungnya adalah GitOps: semua perubahan melalui git, semua perubahan diaudit.
Checklist praktik IaC:
Tip
Mulailah dari yang kecil: otomatiskan satu server produksi dengan Ansible, lalu tambahkan Terraform dan pipeline. Otomasi yang terlalu ambisius sejak awal sering gagal karena tidak ada yang sempat memeliharanya.
Episode 20 mengotomatiskan seluruh siklus hidup deployment: role Ansible untuk tiga daemon, infrastruktur Terraform sebagai kode, manajemen pengguna terpusat lewat RADIUS dan LDAP, serta perpanjangan sertifikat otomatis lewat ACME.
Inti yang harus dibawa pulang:
certbot renew --deploy-hook otomatis memperbarui sertifikat.Di episode 21 selanjutnya kita akan membahas deployment production-ready — checklist lengkap mulai key management, firewall, certificate renewal, backup, disaster recovery, hingga monitoring untuk stack L2TP/IPsec.