Lxd Manjaro
24 Januari 2020
LXD is a container and virtual-machine “hypervisor” and a new user experience for Linux Containers. Ya sepemahaman bodohku sih lxd ini frontend buat LXC. Install lxd di Manjaro juga gampang banget, tinggal install lewat pacman. sudo pacman -S lxc lxd sudo systemctl enable --now lxc lxd Masalahnya adalah ketika aku coba bikin satu kontainer Debian 10 64bit. lxc launch images:debian/10/amd64 debian Muncul error: Creating debian Starting debian Error: Failed to run: /usr/bin/lxd forkstart debian /var/lib/lxd/containers /var/log/lxd/debian/lxc.…
Tes Kirim Email Laravel via Artisan Tinker
21 Januari 2020
Laravel bisa kirim email, konfigurasi smtp ada di dot env. Adakalanya aku edit dot env dan ingin segera tes dot env tersebut. Cara tercepat adalah tes lemat commnd line. Beruntung, laravel membawa artisan tinker. Untuk kirim email laravel dari terminal/tinker, pertama edit .env dan isi konfigurasi smtp MAIL_MAILER=smtp MAIL_HOST=striped-due-privacy.co.id MAIL_PORT=465 MAIL_USERNAME=user@striped-due-privacy.co.id MAIL_PASSWORD=striped-due-privacy MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=user@striped-due-privacy.co.id MAIL_FROM_NAME="${APP_NAME}" Clear config cache laravel sudo -u www-data php artisan config:cache Masuk ke tinker sudo -u www-data php artisan tinker Lalu jalankan script php…
Debian 10 Bikin Email Alias Untuk Root
20 Januari 2020
System Operasi Debian 10 (server) kadang mengirim email ke user root. Email ini biasanya berisi notifikasi, misalnya notifikasi failed cron job, notifikasi failed auth, dan berbagai notifikasi sistem lainnya. Email notifikasi tersebut akan dikirim ke alamat root@hostname. Ya kalau kita login ke system sih kita bisa membaca email tersebut. Bagaimana kalau kita sedang sibuk engga sempat login ke system? Solusinya ya email tersebut dikirim ke email external. Cara untuk setup external email user debian 10 sangat mudah.…
Github Multiple Repositories Deploy Keys Dalam Satu Mesin
17 Januari 2020
Github mempunyai fitur Deploy Keys per repository, tempat untuk menaruh public key mesin supaya bisa pull/push tanpa password. Berbeda dengan fitur SSH and GPG Keys yang ada di Personal Setting, Deploy keys bisa spesifik per repository dan bisa diatur ijinnya apakah allow pull only atau allow pull+push. Deploy Keys dibuat untuk memudahkan proses CI/CD atau otomasi ketika deploy project. Deploy Keys dapat diakses melalui Repo > Settings > Deploy Keys, cek gambar berikut: Permasalahannya adalah ketika kita hanya punya satu mesin, dan punya banyak repository, ketika kita memasukan public key yang sudah digunakan dalam repo lain, maka github akan komplain kalau key sudah digunakan.…
Cara Mudah Upgrade Ingress Controller Traefik V1 Ke V2 Tanpa Downtime
9 Januari 2020
Traefik adalah reverse-proxy yang dibuat dalam konteks artikel ini yaitu reverse-proxy untuk service dalam kubernetes cluster. Dalam konteks artikel ini traefik berperan sebagai ingress controller. Tugasnya adalah untuk meneruskan request dari luar kubernetes cluster menuju service yang ada di dalam kubernetes cluster. Gambar berikut ini akan menjelaskan apa fungsi Traefik Traefik sebagai reverse proxy tentu saja belum sematang HAProxy atau Nginx. Lalu kenapa pakai traefik? karena Traefik sudah cukup stabil untuk habdle request, built-in let’s encrypt integration, dan tentunya karena dukungan traefik sebagai kubernetes cluster ingress controller.…
Traefik V2 SSL A+ in Ssllabs
3 Januari 2020
Untuk mendapatkan score a+ di SSL Labs ketika menggunakan traefik v2 sebagai ingress controller sangatlah mudah. Cukup membuat sebuah middleware dan sebuah TLSOption. Pertama, buat sebuah middlewara object untuk traefik v2: apiVersion:traefik.containo.us/v1alpha1kind:Middlewaremetadata:name:security-headerspec:headers:frameDeny:truesslRedirect:truebrowserXssFilter:truecontentTypeNosniff:true#HSTSstsIncludeSubdomains:truestsPreload:truestsSeconds:31536000Kemudian buat sebuah TLSOption apiVersion:traefik.containo.us/v1alpha1kind:TLSOptionmetadata:name:mytlsoptionnamespace:defaultspec:minVersion:VersionTLS12cipherSuites:- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384# TLS 1.2- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305# TLS 1.2- TLS_AES_256_GCM_SHA384# TLS 1.3- TLS_CHACHA20_POLY1305_SHA256# TLS 1.3curvePreferences:- CurveP521- CurveP384sniStrict:trueApply kedua object diatas dengan kubectl. Selanjutnya edit ingressRoutes traefik: apiVersion:traefik.containo.us/v1alpha1kind:IngressRoutemetadata:name:my.domain.co.idnamespace:belajarannotations:kubernetes.io/ingress.class:"traefik-dua"spec:entryPoints:- webroutes:- match:Host(`my.domain.co.id`)kind:Ruleservices:- name:myapp-svcport:80---apiVersion:traefik.containo.us/v1alpha1kind:IngressRoutemetadata:name:my.domain.co.id-tlsnamespace:belajarannotations:kubernetes.io/ingress.class:"traefik-dua"spec:entryPoints:- websecureroutes:- match:Host(`my.domain.co.id`)kind:Ruleservices:- name:myapp-svcport:80middlewares:- name:security-headernamespace:defaulttls:certResolver:leprodoptions:name:mytlsoptionnamespace:defaultPerhatikan bagian spec.routes.middlewares.name dan spec.…
Install TWRP Redmi 5 Plus Dari Manjaro Linux
24 Januari 2020
TWRP adalah Time Win Recovery, sebuah custom recovery untuk menggantikan recovery bawaan HP. Cara install twrp untuk xiaomi redmi 5 plus umumnya menggunakan Windows. Oleh sebab itu aku tulis tutorial flash twrp redmi 5 plus dari linux, wabilkhusus dari Manjaro Linux. Intinya sih sama saja, untuk install TWRP redmi 5 plus kita butuh ADB tool dan fastboot tool. Kalau di Manjaro, adb dan fastboot ada dalam paket android-tools Langsung saja, yang pertama tentu install android-tools…
Kubernetes Cluster Doomsday
10 Januari 2020
Kubernetes has a ticking time bomb, that is the cluster’s certificate. Kubernetes clusters work on top of TLS and rely on PKI certificates for authentication over TLS. The Kubernetes cluster certificates have a lifespan of one year. If the Kubernetes cluster certificate expires on the Kubernetes master, then the kubelet service will fail. Issuing a kubectl command, such as kubectl get pods or kubectl exec -it container_name bash, will result in a message similar to Unable to connect to the server: x509: certificate has expired or is not yet valid.…
Convert Putty Public Key to Openssh Public Key
20 Januari 2020
Aku jarang pakai putty, hehe. Di linux pakai terminal emulator udah cool dan gak perlu install. Tapi ada kalanya temen kita putty, dan ketika diminta untuk ngirim public key, sudah pasti dia akan generate pakai putty. Hal ini umum bagi pengguna OS Windows. Berbeda dengan pengguna OS linux yg pakai openSSh. Format public key putty kira-kira begini: ---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20200720" ... key panjang disini> ... ---- END SSH2 PUBLIC KEY ---- Sedangkan public key openSSH:…
Traefik V1 Ip Blocklist Part 2
20 Januari 2020
Menyambung artikel tentang Traefik V1 Ip Blocklist, ini sangat mudah karena tinggal setup forward auth doang. Kebetulan dulu aku install traefik v1.7.24 pakai Helm. Jadi untuk setup foward auth, aku tinggal edit values.yaml. Cukup edit/menambahkan forwardAuth:entryPoints:["http","https"]address:http://ipfilter.fwdauth.svc.cluster.local/traefiktrustForwardHeader:trueNote: ipfilter.fwdauth.svc.cluster.local ini mengikuti konvensi dns cluster k8s nama-service.nama-namespace.svc.cluster.local kemudian apply values.yaml dengan perintah helm upgrade helm -n kube-system upgrade traefik stable/traefik -f 1.values.yaml Selesai, sekarang traefik mendapatkan fungsi blocklist ip address. Cool