Liburan Sejenak

Hampir tiap hari Vavai dan Vivian belajar online, jadi supaya ada perubahan suasana mlipir sebentar ke tempat yang relatif sepi dan adem.

Tips Penggunaan Email

Bagi rekan-rekan yang hendak/sedang melamar pekerjaan, baik untuk PNS, instansi pemerintah tertentu maupun swasta dan memerlukan isian email (untuk notifikasi/konfirmasi), ada baiknya perhatikan hal-hal sebagai berikut :

  • Jika menggunakan email public, sebaiknya gunakan email gmail. Gmail sampai dengan saat ini masih merupakan email server dengan kualitas anti spam yang bagus namun juga sanggup menangani jumlah kiriman email dalam jumlah besar
  • Jika sudah punya email lain (misalnya Yahoo atau Hotmail dan lain-lain), silakan buat 1 buah email khusus di gmail untuk keperluan ini. HP maupun laptop memiliki kemampuan setup multi email, jadi punya 2 email dalam 1 HP bukan masalah yang sulit
  • Saat mengisi alamat email, pastikan penulisannya benar dan valid. Jangan sampai kans lolos penerimaan malah hilang hanya gara-gara email tidak valid.

Contoh email tidak valid :

  • @gmail.co.id
  • @ yahoo.com.id
  • @gmal.com
  • @yahoo.comom
  • @gmaill.com
  • @gmail.con
  • @gmail.c0m

Itu adalah contoh beberapa diantaranya. Apakah banyak? Banyak sekali. Sebagai gambaran, dari 1000 email bisa belasan atau puluhan yang salah emailnya. Sebagai contoh, saya pernah mendapati ada blast email sebanyak 350 ribu dan belasan ribu diantaranya email tidak valid.

Sebagai catatan tambahan, jika kamu seorang apps developer, sebaiknya tambahkan kemampuan validasi email. Di Github ada banyak contoh API atau algoritma validasi email yang bisa mencegah email salah/typo sebelum disimpan. Banyak kejadian, apps developer tidak melakukan pengecekan dan langsung menyimpan data email yang diinputkan oleh user.
Banyaknya email salah/tidak valid akan merusak reputasi pengiriman email karena dianggap mengirim email ke alamat inexistent.

  • Selalu isi subject email. Email tanpa subject biasanya terkena blacklist atau dipenalti sebagai spam
  • Sebaiknya Menulis Subject dalam Pola Title Case : Misalnya “Lamaran Pekerjaan Staff IT : Muhammad Rivai Andargini”. Jangan menulis CAPS LOCK alias HURUF KAPITAL semua karena anti spam biasanya memberikan penalti beberapa score point untuk penggunaan huruf kapital
  • Gunakan alamat email yang baik dan jangan menggunakan nama yang “nyeleneh”. Meski mungkin ingin menunjukkan jati diri, belum tentu pihak penerima memahami maksud si pengirim, apalagi jika digunakan untuk email komunikasi resmi. Contoh alamat email nyeleneh misalnya : nita_cantique, An4k_4l4y 🙂
  • Baca petunjuk cara mengirim email yang diminta. Perhatikan penulisan subject, isi email maupun batasan maksimum jumlah attachment. Jika attachment dibatasi hanya 1 MB misalnya, umumnya email diatas kapasitas tersebut akan otomatis direject. Ingat, perusahaan/lembaga menerima banyak sekali lamaran, jangan sampai lamaran sudah terkena blacklist padahal belum dibaca sama sekali.

Untuk tambahan tips lainnya bisa lihat disini ya :

Memasang GitHub CLI pada openSUSE

Apa itu GitHub CLI? GitHub CLI adalah fungsi GitHub di baris perintah, berupa pull request, issue, dan konsep GitHub lainnya ke terminal di tempat Anda bekerja dengan git dan kode Anda. Jadi sehabis mendorong kode ke repo, kita bisa langsung membuat pull request tanpa perlu kembali ke peramban, begitu juga ketika membuat issue, dan lain sebagainya. GitHub CLI ini dibangun untuk mengurangi context switching dari terminal ke peramban dan sebaliknya. Menarik bukan.

Cara memasang di openSUSE (baik Leap maupun Tumbleweed) cukup dengan menjalankan tiga perintah berikut, yaitu menambahkan repo, menyegarkan repo, lalu memasang paket GitHub CLI.

sudo zypper addrepo https://cli.github.com/packages/rpm/gh-cli.repo
sudo zypper ref
sudo zypper install gh

Mudah bukan? Selamat mencoba

Mencoba Microsoft Edge Dev Pada openSUSE Leap

Panduan ini dicoba pada openSUSE Leap 15.2. Langkahnya:

  1. Tambahkan kunci dari Microsoft
     sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
    
  2. Tambahkan repositori Microsoft Edge Dev
     sudo zypper ar https://packages.microsoft.com/yumrepos/edge microsoft-edge-dev
    
  3. Segarkan repositori
     sudo zypper refresh
    
  4. Pasang Microsoft Edge Dev
     sudo zypper install microsoft-edge-dev
    

Selamat mencoba!

Pendaftaran Open Infrastructure & Cloud Native Day Indonesia 2020

Info lebih lanjut mengenai poster dapat diakses pada tautan: https://s.id/oi_cnd2020info

Agenda acara dapat diakses disini.

Mengkompilasi Ulang Kernel di openSUSE Tumbleweed

Catatan ini berisi bagaimana melakukan compilasi ulang kernel yang sudah terpasang, karena ada beberapa perbaikan driver perangkat. Dalam hal ini modifikasi LVDS di Thinkpad X330 saya.

Studi Kasus:

  • Sistem operasi: openSUSE Tumbleweed 20201005
  • Kernel baru dipasang: 5.8.10-1-default
  • Kernel lama dan sedang digunakan: 5.6.11-1-default

Persiapan Perkakas

sudo zypper install kernel-default kernel-source kernel-devel

Perintah diatas dilakukan untuk pemasangan kernel terbaru 5.8.10 bawaan dari lumbung openSUSE Tumbleweed, kemudian juga mengunduh kernel-source (kode sumber) dan kernel-devel untuk versi 5.8.10.

Mengkompilasi Kernel

Sebelum melakukan kompilasi, batalkan pengaturan sleep dan hibernate agar ketika sedang kompilasi dan sudah dalam batas waktu tidak ada aktifitas, laptop tidak tiba-tiba sleep atau hibernate. Hal ini bisa menyebabakan proses berhenti dan nanggung.

Lakukan sebagai user root, kemudian berpindah ke alamat kode sumber kernel terbaru berada.

sudo su
ls -al /usr/src/
cd /usr/src/linux

Salin konfigurasi kernel baru yang terakhir.

cp /boot/config-5.8.10-1-default .config

Lakukan modifikasi driver sesuai kebutuhan. Seperti dalam berkas diff saya. Kemudian dilanjutkan dengan proses kompilasi kernel. Siapkan cemilan, mulai dan tunggu. Proses ini memakan waktu hingga tiga jam. Saya pilih opsi untuk menggunakan semua core yang tersedia. Kemudian setelah selesai kompilasi kernel dan modul, saya langsung melakukan pemasangan. Terakhir ditutup dengan memperbaharui daftar kernel pada saat boot (GRUB).

make -j $(nproc) && make modules_install && make install -j $(nproc) && mkinitrd

Bersih-Bersih Sampah Pasca Kompilasi

Setelah kompilasi selesai, biasanya meninggalkan berkas sampah kompilasi yang cukup besar, kisaran hampir 5GB. Makanya butuh dihapus.

sudo su
cd /usr/src/linux
make clean

Bersih-Bersih Kernel Kembar

Setelah itu, ketika memeriksa alamat /boot/ biasanya kita akan menemukan kernel kembar dengan nama berkas *.old. Lakukan penghapusan, kemudian nyala ulang untuk menggunakan kernel yang baru.

sudo su
rm -rf /boot/*.old
mkinitrd
reboot

Bersih-Bersih Kernel Lama dan Teman-Temannya

Lakukan penghapusan kernel lama, jika sudah sangat yakin, kernel itu tidak mau disimpan. Saya menyarankan agar menjaga minimal 2 kernel. 1 kernel lama yang stabil, 1 kernel yang baru dipasang.

Konfigurasi: latest,latest-1,running

Daftar Kernel yang disimpan
sudo zypper purge-kernels
sudo zypper remove kernel-devel kernel-source
sudo zypper addlock kernel-default

Konfigurasi Tambahan

Setelah berganti kernel, biasanya ada beberapa perangkat lunak yang butuh dikonfigurasi ulang, seperti VirtualBox dan Vagrant. Lakukan pengaturan seperlunya.

Demikian. Semoga bermanfaat.
Estu~

Run openSUSE Kubic – Like (K8s, Podman & CRI-O) on Alibaba Cloud

openSUSE Kubic is Certified Kubernetes distribution & container-related technologies built by the openSUSE community. There is specific iso for openSUSE Kubic.

But sadly. As I am a cloud provider user. There are not many cloud provider who have feature upload ISO Image if I want to upload openSUSE Kubic ISO. And next problem, there is very limited kind cloud provider who have openSUSE distribution for image flavor when launch Virtual Machine. Cloud like AWS and GCP only provide SLES version.

Fortunately, Alibaba Cloud have openSUSE Leap distribution. Alibaba Cloud have openSUSE Leap 42.3, 15.1 and 15.2 beside SLES version. It is help me lot of.

Prepare Virtual Machine for Master and Node

I created two virtual machine with spec:

  • 2 VM openSUSE Leap 15.2 (hostname: master-01,node-01)
  • 2 Core, 2 GB RAM | ecs.t5-c1m1.large
  • Security Group (open port TCP: 22,80,443,6443,30000)

Upgrade to openSUSE Tumbleweed

After created vm, ssh to each server, run upgrade to tumbleweed:

ssh root@ip-server
mkdir /etc/zypp/repos.d/old
mv /etc/zypp/repos.d/*.repo /etc/zypp/repos.d/old
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/oss repo-oss
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/non-oss repo-non-oss
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/debug repo-debug
zypper ar -f -c http://download.opensuse.org/update/tumbleweed/ repo-update
zypper dup

Install Kubernetes Stuff

This step will be doing and each virtual machine.
After upgrade, do power off and power on. Then lets start install Kubernetes stuff:

  1. Config network option
  2. Add config to /etc/sysctl.conf and reload
  3. Install kubeadm, cri-o and podman
modprobe overlay
modprobe br_netfilter
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 
echo "net.ipv4.conf.all.forwarding = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
sysctl -p
zypper in cri-o cri-tools kubernetes-kubeadm kubernetes-client podman
systemctl enable kubelet
systemctl start kubelet

Initialize Kubernetes Cluster on master-01

After done install Kubernetes stuff, lets start initialize Kubernetes cluster:

kubeadm config images pull
kubeadm init

This process will create cluster. Save output command for join cluster. We need this token for next step. And copy kubeconfig for Kubernetes Client.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Setup Network Plugins on master-01

I using project calico for network plugins. It is more better then weave for me.

curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml

Join Cluster on node-01

After created cluster, now we configure node-01 to join cluster. We use command from output kubeadm init at previous command.

kubeadm join 172.31.167.254:6443 --token jqeu4g.34rglub8wkgb9i5x \
    --discovery-token-ca-cert-hash sha256:5d2cbc7a79287228b90b188b4c99626f461a57d13b7a006dfe2265da0d0a9356

Verify Kubernetes Cluster

Do this command on master-01 after node-01 joined cluster.

kubectl get nodes
kubectl get pods --all-namespaces

Create Simple Deployment

I testing cluster using simple app nginx, and service using node port. Here the snippet for nginx-dpy.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-deployment
spec:
  selector:
    matchLabels:
      app: hello
  replicas: 2
  template:
    metadata:
      labels:
        app: hello
        env: staging
    spec:
      containers:
        - name: hello
          image: tuanpembual/hello
          imagePullPolicy: Always
          ports:
            - name: http
              containerPort: 80
              protocol: TCP
---

apiVersion: v1
kind: Service
metadata:
  name: hello-service
  labels:
    app: hello
spec:
  type: NodePort
  selector:
    app: hello
  ports:
    - name: http
      nodePort: 30000
      port: 80
      targetPort: 80
---

Then deploy this yaml:

kubectl apply -f nginx-dpy.yaml
curl localhost:30000

The apps can be access to using master_01_ip_public:30000/. That all from me.

References

I hope it will give you more idea. Thank you
Estu~

Run openSUSE Kubic – Like (K8s, Podman and CRI-O) on Alibaba Cloud

openSUSE Kubic is Certified Kubernetes distribution & container-related technologies built by the openSUSE community. There is specific iso for openSUSE Kubic.

But sadly. As I am a cloud provider user. There are not many cloud provider who have feature upload ISO Image if I want to upload openSUSE Kubic ISO. And next problem, there is very limited kind cloud provider who have openSUSE distribution for image flavor when launch Virtual Machine. Cloud like AWS and GCP only provide SLES version.

Fortunately, Alibaba Cloud have openSUSE Leap distribution. Alibaba Cloud have openSUSE Leap 42.3, 15.1 and 15.2 beside SLES version. It is help me lot of.

Prepare Virtual Machine for Master and Node

I created two virtual machine with spec:

  • 2 VM openSUSE Leap 15.2 (hostname: master-01,node-01)
  • 2 Core, 2 GB RAM | ecs.t5-c1m1.large
  • Security Group (open port TCP: 22,80,443,6443,30000)

Upgrade to openSUSE Tumbleweed

After created vm, ssh to each server, run upgrade to tumbleweed:

ssh root@ip-server
mkdir /etc/zypp/repos.d/old
mv /etc/zypp/repos.d/*.repo /etc/zypp/repos.d/old
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/oss repo-oss
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/non-oss repo-non-oss
zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/debug repo-debug
zypper ar -f -c http://download.opensuse.org/update/tumbleweed/ repo-update
zypper dup

Install Kubernetes Stuff

This step will be doing and each virtual machine.
After upgrade, do power off and power on. Then lets start install Kubernetes stuff:

  1. Config network option
  2. Add config to /etc/sysctl.conf and reload
  3. Install kubeadm, cri-o and podman
modprobe overlay
modprobe br_netfilter
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 
echo "net.ipv4.conf.all.forwarding = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
sysctl -p
zypper in cri-o cri-tools kubernetes-kubeadm kubernetes-client podman
systemctl enable kubelet
systemctl start kubelet

Initialize Kubernetes Cluster on master-01

After done install Kubernetes stuff, lets start initialize Kubernetes cluster:

kubeadm config images pull
kubeadm init

This process will create cluster. Save output command for join cluster. We need this token for next step. And copy kubeconfig for Kubernetes Client.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Setup Network Plugins on master-01

I using project calico for network plugins. It is more better then weave for me.

curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml

Join Cluster on node-01

After created cluster, now we configure node-01 to join cluster. We use command from output kubeadm init at previous command.

kubeadm join 172.31.167.254:6443 --token jqeu4g.34rglub8wkgb9i5x \
    --discovery-token-ca-cert-hash sha256:5d2cbc7a79287228b90b188b4c99626f461a57d13b7a006dfe2265da0d0a9356

Verify Kubernetes Cluster

Do this command on master-01 after node-01 joined cluster.

kubectl get nodes
kubectl get pods --all-namespaces

Create Simple Deployment

I testing cluster using simple app nginx, and service using node port. Here the snippet for nginx-dpy.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-deployment
spec:
  selector:
    matchLabels:
      app: hello
  replicas: 2
  template:
    metadata:
      labels:
        app: hello
        env: staging
    spec:
      containers:
        - name: hello
          image: tuanpembual/hello
          imagePullPolicy: Always
          ports:
            - name: http
              containerPort: 80
              protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: hello-service
  labels:
    app: hello
spec:
  type: NodePort
  selector:
    app: hello
  ports:
    - name: http
      nodePort: 30000
      port: 80
      targetPort: 80
---

Then deploy this yaml:

kubectl apply -f nginx-dpy.yaml
curl localhost:30000

The apps can be access to using master_01_ip_public:30000/. That all from me.

References

I hope it will give you more idea. Thank you
Estu~

openSUSE + LibreOffice Virtual Conference

openSUSE dan LibreOffice menggabungkan konferensi tahunannya pada tahun 2020. Konferensi bersama ini digabungkan untuk merayakan 10 tahun Proyek LibreOffice dan 15 tahun Proyek openSUSE. Acara semula akan diselenggarakan di Nuremberg, Jerman. Namun karena situasi pandemi, acara bergeser menjadi sebuah acara daring yang akan berlokasi di https://oslo.gonogo.live. Pendaftaran di https://oslo.gonogo.live diperlukan untuk berpartisipasi dalam acara ini. Tanggal konferensi telah dijadwalkan ulang menjadi 15 – 17 Oktober 2020. Konferensi ini adalah acara komunitas yang bebas dan terbuka. Jadwal lengkap konferensi dapat dilihat pada tautan https://events.opensuse.org/conferences/oSLO/schedule. Harap perhatikan bahwa waktu yang tertera adalah UTC.

Beberapa pembicara dari Indonesia turut meramaikan openSUSE + LibreOffice Virtual Conference tahun ini, antara lain:

  1. Kuliax: Is GNU/Linux distribution for higher education still relevant? oleh Iwan Setiawan
  2. Podman on Kubernetes Cluster Production Grade – Kubernetes on Hard Way oleh Estu Fardani
  3. Building Upstream Contribution in Local FOSS Community – Based on openSUSE and LibreOffice Community in Indonesia oleh Kukuh Syafaat
  4. IT Risk Management Based on ISO 31000 and OWASP Framework using OSINT (Case Study: Election Commission of X City) oleh Anak Agung Bagus Arya Wiradarma

 

Oct 6th, 2020