Tuesday 19 May 2020

Macam mana nak diamkan beep atau alarm kat linux



Saya rasa bunyi beep atau alarm kat terminal ni macam menyakitkan hati. Cara nak diamkan bunyi ni, larikan arahan berikut.

gsettings set org.gnome.desktop.wm.preferences audible-bell false

Ini arahan dari Gnome. Maksudnya kena ada Gnome baru boleh guna arahan ni. Tapi tak semestinya nak larikannya di Gnome. Saya larikan arahan ni di i3wm dan ianya berjaya

Friday 15 May 2020

Macam nak guna curl untuk request yang ada Token and JSON

Kadang-kadang pengaturcara kata ada ralat pada sistem dan dia bagi cekupan screen dari Postman seperti berikut:





Sebagai admin system selalunya kita tak ada Postman ni tapi kita ada curl yang tercinta. Kita boleh guna curl untuk request yang di atas.

Mula buat file JSON untuk maklumat dari Body

badan.json
{
  "nama": "jeffry",
  "kekunci": "rahsialah",
  "pejabat": "TM"
}

Kemudian larikan curl seperti berikut

curl -vX POST  https://jeffry/api/paparan/ -H "Content-Type: application/json"  -H "Authorization: Token 99999999999999999" -k -d @badan.json


Oleh itu tak payah susah-susah nak install Postman. Sekian. Semoga bermanfaat

Wednesday 13 May 2020

Macam mana nak buka dan tutup port di iptables ( Centos7, RHEL7, Fedora31 )

Pada zaman dahulu kita boleh suka-suka hati disable kan iptables untuk pelayan-pelayan dalaman seperti pelayan development. Tapi sekarang iptables wajib!!! terutamanya bagi pelayan yang ada Docker. Docker perlukan iptables untuk routing networknya kalau tak de iptables Docker tak jalan. Oleh itu kita kena belajar macam mana nak buka dan tutup port yang dikehendaki.


Untuk buka port 8080 sila larikan arahan yang berikut.

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload


Untuk pastikan port 8080 telah dibuka, larikan arahan yang berikut. Jika berjaya, akan nampak port 8080 dibenarkan di chain IN_public_allow:-

sudo iptables -nL IN_public_allow

contoh:
[S54034@VBCKUBKBXJH307 ~]$ sudo iptables -nL IN_public_allow
Chain IN_public_allow (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 ctstate NEW
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8080 ctstate NEW


Untuk tutup port 8080 sila larikan arahan yang berikut

sudo firewall-cmd --zone=public --remove-port=8080/tcp
sudo firewall-cmd --runtime-to-permanent 
sudo firewall-cmd --reload

Untuk pastikan port 8080 telah ditutup, larikan arahan yang berikut. Jika berjaya, tiada lagi port 8080 di chain IN_public_allow:-

sudo iptables -nL IN_public_allow

contoh:
[S54034@VBCKUBKBXJH307 ~]$ sudo iptables -nL IN_public_allow
Chain IN_public_allow (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 ctstate NEW


Monday 11 May 2020

Apa beza SAN, NAS dan NFS?

Hari ni kita layan terminologi geng-geng storage. Mari kita tengok apa beza SAN, NAS dan NFS.





SAN atau nama panjangnya Storage Area Network merupakan simpanan data atas rangkaian. Ianya simpanan pada tahap block. Apabila disambungkan ke pelayan,ianya dinilai sebagai disk dan pelayan perlu format disk tersebut. Selalunya rangkaian yang digunakan oleh SAN ialah FC atau nama panjangnya Fiber Channel


NAS atau nama panjangnya Network Attached Storage merupakan simpanan data atas rangkaian juga. Akan tetapi ianya pada tahap fail. Apabila disambungkan ke pelayan, ianya dinilai sebagai pelayan fail. Pelayan boleh mount dan pakai storage tersebut. Selalunya rangkaian yang digunakan oleh NAS ialah Ethernet . Komunikasi di antara NAS dan pelayan yang menggunakan servis NAS boleh mengguakan beberapa jenis protokol. Protokol yang selalu digunakan oleh NAS ialah NFS atau nama panjangnya Network File System.

Semoga bermanfaat :)



Sunday 10 May 2020

Dockercon 2020



Jom hadiri dockercon. Untuk mendaftar pergi kesini:-

https://docker.events.cube365.net/docker/dockercon/


Masa Malaysian untuk Dockercon 2020
12am 29/5/2020  ( Jumaat )

Saturday 9 May 2020

Saranan menggunakan "google meet" untuk perjumpaan Hari Raya jika PKP

Jika anda mahu buat virtual meet dengan keluarga boleh lah guna Google Meet . Ianya mudah, percuma dan boleh muat 100 orang pada suatu masa.

1. Orang yang nak buat meeting tu kena pergi sini. Boleh click start a meeting now atau Schedule a meeting

2.  Nanti akan dapat link untuk join meeting tu. Boleh bagi link tu kat ahli keluarga

3. Untuk ahli keluarga yang lain pula boleh Install aplikasi "Google Meet" di talifon pintar masing-masing



atau

Jika nak pakai laptop boleh klik aje ke link yang dapat di atas tu "meet.google.com/vbx-wjo-kvi"

Semoga bermanfaat :)

Macam mana nak hadkan penggunaan PVC di namespace Kubernetes

Untuk hadkan penggunaan storage melalui PVC, kita boleh guna ResourceQuota. Berikut adalah contoh penggunaan.

1. Set context kepada namespace yang nak diquotakan tu

kubectl config set-context --current --namespace=sandbox

2. Lepas tu apply ResourceQuota untuk hadkan penggunaan storage dari PVC
kubectl apply -f myquota.yml


apiVersion: v1
kind: ResourceQuota
metadata:
  name: quota-simpan
spec:
  hard:
    requests.storage: "5Gi"



3. Nak check larikan command yang berikut:- kubectl describe quota
kubectl describe quota

[jeffry@myserver]$ kubectl describe quota
Name:             quota-simpan
Namespace:        sandbox
Resource          Used  Hard
--------          ----  ----
requests.storage  0     5Gi



Pada contoh di bawah,saya cuba request 3 x pvc yang bersize 2GB. Request yang ketiga gagal kerana telah melebihi quota 5GB


Semoga bermanfaat

Kubernetes storage 101

Secara amnya storage kat Kubernetes ada 2.

1. Ephemeral storage

Ephemeral storage merupakan storage default untuk container. Hayatnya sama dengan container. Jika container mati semua data dalam tu mati sekali. Untuk aplikasi yang perlu simpan config, log dan data, storage ini tidak sesuai. Hanya aplikasi yang tak kisah pasal storage yang boleh pakai storage ni.


2. Persistence Storage

Persistence storage adalah storage yang berasingan dengan container. Hayatnya tidak bergantung pada container. Jika container mati, ianya masih kekal. Jika container hidup balik, container tu boleh pakai balik storage tu.

Nak buat persistance storage nie ada banyak cara. Yang utama ada 2.


  1. PVC = Persistance Volume Claim. Ini merupakan abstarak untuk pod guna volume supaya pod tak perlu tahu back end storage macam mana. Back end storage boleh macam-macam seperti vShpere, portwork dan nfs. Kekurang PVC bergantung pada back end storage. Contohnya PVC yang back end storagenya vShpere pada tahun nie tak boleh nak share dengan banyak-banyak pod.
  2. NFS = Network file system. Ini sama macam mount NFS kat Linux. Boleh mount NFS dalam container. Kelebihannya ialah dia boleh share dengan banyak-banyak pod. Kekurangan ialah network latency. Tapi kalau data center network dah mantap apa ada hal :)

Sekian. Semoga bermanfaat :)


Friday 8 May 2020

Macam mana nak containerize aplikasi go dan letak dalam Kubernetes

Kita akan cuba letak satu aplikasi go di Kubernetes.

1. Tulislah kod go . Untuk contoh ini saya buat aplikasi go yang akan keluarkan text pada service http
main.go

package main

import (
    "fmt"
    "log"
    "net/http"
)

func main() {

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello form Kubix. We love golang")
    })

    log.Fatal(http.ListenAndServe(":8081", nil))

}



2. Tulislah Dockerfile untuk dockerizekan applikasi go yang ditulis tadi
Dockerfile


FROM golang:1.12.0-alpine3.9
RUN mkdir /app
ADD . /app
WORKDIR /app
RUN go build -o main .
CMD ["/app/main"]
EXPOSE 8081



3. Buat docker image
docker build -t gokubix:1


4. Push image yang telah dibuat ke docker hub atau pun harbor ( internal image repo )( internal image repo ). Pada contoh ini yang tag dan push ker harbor

docker tag gokubix:2 harbor.kubix.tm/sample/gokubix:1

docker push harbor.kubix.tm/sample/gokubix:1


5.Create manifest file dan deploy

kubectl apply -f gokubix.yml
apiVersion: v1
kind: Service
metadata:
  name: gokubix
spec:
  type: ClusterIP
  ports:
  - port: 80 
    targetPort: 8081
  selector:
    app: gokubix
---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: gokubix
spec:
  replicas: 1
  selector:
    matchLabels:
      app: gokubix
  template:
    metadata:
      labels:
        app: gokubix
    spec:
      containers:
      - name: gokubix
        image: harbor.kubix.tm/sample/gokubix:1


6. Buat ingress resource untuk pamerkan servis ini ke network luar
kubectl apply -f ingress.yml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gokubix
spec:
  tls:
  - hosts: 
    - gokubix.poc-dev.kubix.tm
  rules:
  - host: gokubix.poc-dev.kubix.tm
    http:
      paths:
      - backend:
          serviceName: gokubix
          servicePort: 80



7. Tadaaaa


 ... Semoga bermanfaat

Thursday 7 May 2020

Macam mana nak masukan aksara ke beberapa barisan di dalam VIM

Katakan kita ada kod sumber yang berikut dan kita nak letak "#" pada setiap pangkal barisan untuk komen...




Bawa cursor ke baris pertama pada bahagian yang hendak dikerjakan. Macam dalam contoh ni saya tekan k banyak kali sampai ke baris pertama tu




Tekan "CTRL + v" untuk masuk ke mode "VISUAL BLOCK"



Tekan "j" untuk menurunkan cursor sambil memilih barisan apa yang nak dikerjakan. Pada contoh di bawah saya nak turun sampai barisan terakhir




Kemudian tekan "Shift + i" untuk masuk block insert mode dan kemudian tulis apa yang dituliskan. Pada contoh di bawah saya tulis "#komen# ". Ia akan nampak di barisan pertama dahulu




Tekan "ESC" untuk keluar dari insert mode. Apabila keluar sahaja dari mode tersebut , perkataan "#komen# " akan ada pada setiap barisan automagically



Semoga bermanfaat :)

Wednesday 6 May 2020

Macam mana nak tanam pokok dalam VIM


Jika anda nak ada pandangan pokok dalam VIM seperti IDE, anda kena pasang NERDTree plugin.

Cara Nak Pasang
Larikan arahan di bawah

git clone https://github.com/preservim/nerdtree.git ~/.vim/pack/vendor/start/nerdtree

vim -u NONE -c "helptags ~/.vim/pack/vendor/start/nerdtree/doc" -c q

Cara Nak Guna
Pergi ke directori kerja dan larikan arahan "vim ."
Apabila didalam vim larikan arahan ":NERDTree"

Arahan-arahan asas

panjat pokok : k
turun pokok : j
buka cabang direktori : Enter
usha file: go
buka file: o
lompat dari window ke window: ctrl ww
Untuk arahan-arahan lain boleh tengok bantuan: ?

Semoga bermanfaat

Monday 4 May 2020

Macam mana nak VPN ke pejabat yang pakai pulse dari linux cara CLI

Jika rakan-rakan windows anda pakai "Pulse Secure", anda boleh guna openconnect di Linux. Larikan arahan di bawah. Gantikan url tu dengan vpn pejabat anda:-

sudo openconnect --protocol=pulse https://securevpn.pejabatku.com.my

Contoh penggunaan:
[jeffry@hulkbuster ~]$ sudo openconnect --protocol=pulse https://securevpn.pejabatku.com.my
[sudo] password for jeffry: 
Connected to xx.xx.xx.xx:443
SSL negotiation with securevpn.pejabatku.com.my
Connected to HTTPS on securevpn.pejabatku.com.my
Got HTTP response: HTTP/1.1 101 Switching Protocols
Enter user credentials:
Username:jeffry
Password:
Connected as xx.xx.xx.xx, using SSL, with ESP in progress
ESP session established with server


Tatacara klon pelayan di AWS lightsail

  Kadang-kala kita diminta untuk buat satu sistem baru untuk tujuan ujikaji atau percubaan fungsi baru. Jika di AWS lightsail kita boleh bua...