Wednesday 29 April 2020

Macam mana nak set resource quota di ns K8s

Salam geng, hari nie saya nak kongsi macam mana nak set resource quota di namespace (ns) dalam Kubernetes( K8s ). Ini untuk kawal supaya user tak boleh guna sesuka hati semua CPU dan Memory kat dalam sebuat cluster K8s.

1. Set context ke ns yang nak di quotakan. Pada contoh ni, saya nak ke ns sandbox
kubectl config set-context --current --namespace=sandbox

2. Tetapkan quota untuk CPU dan Memory. Unit CPU dan Memory adalah seperti berikut

CPU = 1 ( 1 CPU ), 100m ( 0.1 CPU )
Memory = 1Gi ( 1 Gigabyte ), 1Mi ( 1 Megabyte )

Apply manifest resourcequota untuk set quota di ns ini.
kubectl apply -f quota.yml

quota.yml
apiVersion: v1
kind: ResourceQuota
metadata:
  name: ns-quota
spec:
  hard:
    limits.cpu: "1"
    limits.memory: 4Gi


3. Untuk semak quota dah ada ke belum buat arahan yang berikut:-
S54034@VBCTRUKBXJH300 quota]$ kubectl describe quota
Name:          ns-quota
Namespace:     sandbox
Resource       Used  Hard
--------       ----  ----
limits.cpu     0     1
limits.memory  0     4Gi


4. Jom deploy 3 nginx pod yang masing-masing gunak 0.5 CPU dan 2GB memory. Apa yang akan terjadi ialah

i.   nginx pertama akan pakai separuh dari quota.
ii.  nginx kedua akan pakai semua quota
iii. nginx ketiga akan gagal kerana quota dah penuh.

Ini manifest untuk nginx pertama. Untuk nginx kedua kena edit nginx01 ke nginx02. Untuk nginx ketiga kena ubah ke nginx03

#Test pod
apiVersion: v1
kind: Pod
metadata:
  name: nginx01
spec:
  containers:
  - name: nginx01
    image: harbor.dev.kubix.tm.com.my/library/nginx:latest
    resources:
      limits:
        memory: "2Gi"
        cpu: "500m" 
      requests:
        memory: "2Gi"
        cpu: "500m" 




Mari kita tengok contoh quota ini :

$ kubectl apply -f quota.yml 
resourcequota/ns-quota created
$ kubectl describe quota
Name:          ns-quota
Namespace:     sandbox
Resource       Used  Hard
--------       ----  ----
limits.cpu     0     1
limits.memory  0     4Gi

$ kubectl apply -f nginx-0.5vcpu-2gb-01.yml 
pod/nginx01 created
$ kubectl describe quota
Name:          ns-quota
Namespace:     sandbox
Resource       Used  Hard
--------       ----  ----
limits.cpu     500m  1
limits.memory  2Gi   4Gi
$ kubectl apply -f nginx-0.5vcpu-2gb-02.yml 
pod/nginx02 created
$ kubectl describe quota
Name:          ns-quota
Namespace:     sandbox
Resource       Used  Hard
--------       ----  ----
limits.cpu     1     1
limits.memory  4Gi   4Gi
$ kubectl apply -f nginx-0.5vcpu-2gb-03.yml 
Error from server (Forbidden): error when creating "nginx-0.5vcpu-2gb-03.yml": pods "nginx03" is forbidden: exceeded quota: ns-quota, requested: limits.cpu=500m,limits.memory=2Gi, used: limits.cpu=1,limits.memory=4Gi, limited: limits.cpu=1,limits.memory=4Gi

Tuesday 28 April 2020

Melangkah ke alam Archlinux bahagian 2

Kali ini saya akan kongsikan langkah-langkah yang saya rumuskan untuk install Archlinux di laptop Acer egg daripada beberapa cubaan yang telah saya lakukan. Saya suka install tanpa internet kerana tak suka installation yang dilembabkan oleh network yang lembab


Pemasangan Archlinux tanpa Internet

1. Boot pen usb yang telah dibakar dengan iso Archlinux. Pilih pilihan yang pertama:-




2. Buat  partition di cakera keras dengan menggunakan fdisk seperti dibawah.

fdisk /dev/sda

Saya punya partition sangat ringkas. Sila rujuk dokumen fdisk untuk cara penggunaanya

/dev/sda1         500MB ( untuk boot )
/dev/sda2         8GB ( untuk swap)
/dev/sda3         yang bakinya ( untuk / )

3. Format partition mengikut format yang berikut:-

sda1 untuk boot . Oleh itu kena pakai filesystem dos. Kalau tak grub( boot loader ) tak boleh nak install di atasnya.
mkfs.fat -F32 /dev/sda1

sda2 untuk swap. Oleh itu buat swap dan guna swap tersebut
mkswap /dev/sda2

swapon /dev/sda2

sda3 untuk root partition /
mkfs.ext4 /dev/sdX1

4. Mount filesystem yang telah di buat di /mnt
mount /dev/sd3 /mnt

mkdir /mnt/boot/efi

mount /dev/sd1 /mnt/boot/efi

5. Salin  fail-fail yang diperlukan  seperti cli tools and linux kernel dari live-boot usb ker directory /mnt
cp -ax / /mnt

cp -vaT /run/archiso/bootmnt/arch/boot/$(uname -m)/vmlinuz /mnt/boot/vmlinuz-linux

6. Isikan fstab dengan command berikut
genfstab -U /mnt >> /mnt/etc/fstab

7. Chroot ke /mnt
arch-chroot /mnt /bin/bash

8. Padamkan service dan fail-fail  yang tak diperlukan dari live-boot usb
systemctl disable pacman-init.service choose-mirror.service
rm -r /etc/systemd/system/{choose-mirror.service,pacman-init.service,etc-pacman.d-gnupg.mount,getty@tty1.service.d}
rm /etc/systemd/scripts/choose-mirror
rm /etc/systemd/system/getty@tty1.service.d/autologin.conf
rm /root/{.automated_script.sh,.zlogin}
rm /etc/mkinitcpio-archiso.conf
rm -r /etc/initcpio

9. Tetap kan kata kekunci root
passwd

10. Install boot loader . Saya suka grub
grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg

11. Keluar dari chroot dan reboot
exit
shutdown now

13. Jangan lupa cabut live-usb tu. Pergi ke bios (F2 di Acer egg) dan tetapkan file UEFI untuk boot. Save dan reboot



14. Tada... kalau semu OK, akan sampai ke GRUB boot loader dan boleh login :)


Alhamdulillah boleh login :)

Lepas ni nak configure wifi supaya boleh install barang dari internet dan X server untuk windows manager dan desktop environment. In sha Allah 

Monday 27 April 2020

Melangkah ke alam Archlinux bahagian 1

Muqaddimah: Saya ada sebuah laptop lama Acer Egg 1GHz Celeron dan 1.8 GB memory. OS asalnya windows versi apa tah, tak ingat . Komputer ni lembab ya amat sampai anak-anak saya pun tak sudi nak gunakannya walaupun untuk menonton youtube. Saya cuba selamatkan dengan install Fedora 29 dulu. Fedora dengan full bang Gnome amat azab untuk Acer Egg ni. Tapi lebih baik dari OS windows nya. Sekarang laptop ni tak digunakan oleh anak-anak saya kerana saya dah beli sebuah laptop refurbish yang sesuai dengan zaman ini untuk mereka :). So ada peluang untuk cuba OS yang lebih ringan . Semestinya OS yang ringan itu kurang applikasinya dan mesti kena tabah nak harungi langkah-langkah yang wajib di lakukan. Setelah buat kajian, saya pilih Arch linux. Ianya memang dibina untuk jadi ringan dan komunitinya nampak aktif.

 Langkah pertama ialah untuk bakar isonya dan boot

1. Muat turun iso Arch linux dari https://www.archlinux.org/download/ . Saya ambik mirror dari Indonesia
wget http://mirror.labkom.id/archlinux/iso/2020.04.01/archlinux-2020.04.01-x86_64.iso


2. Download md5sums.txt untuk check iso tu ok ke tak..

wget http://mirror.labkom.id/archlinux/iso/2020.04.01/md5sums.txt


cara nak check, larikan command ini di directory yang ada iso dan md5sums.txt tu

grep iso md5sums.txt | md5sum -c

[jeffry@hulkbuster Downloads]$ grep iso md5sums.txt | md5sum -c

archlinux-2020.04.01-x86_64.iso: OK



3. Cucuk usb dan pastikan nama disk . Seperti di komputer saya usb yang di cucuk ialah /dev/sdb 

[jeffry@hulkbuster Downloads]$ df -h
Filesystem                               Size  Used Avail Use% Mounted on
devtmpfs                                 7.8G     0  7.8G   0% /dev
tmpfs                                    7.8G  234M  7.6G   3% /dev/shm
tmpfs                                    7.8G  2.0M  7.8G   1% /run
tmpfs                                    7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/mapper/fedora_localhost--live-root   69G   27G   39G  42% /
tmpfs                                    7.8G  748K  7.8G   1% /tmp
/dev/sda6                                976M  147M  762M  17% /boot
/dev/mapper/fedora_localhost--live-home  180G   14G  157G   9% /home
/dev/sda5                                599M   20M  580M   4% /boot/efi
tmpfs                                    1.6G  156K  1.6G   1% /run/user/1000
/dev/sdb                                 1.8G  9.8M  1.8G   1% /run/media/jeffry/1794217D42A5DB8C

4. unmount usb tersebut dan bakar guna command dd

 umount /run/media/jeffry/1794217D42A5DB8C

dd bs=4M if=./archlinux-2020.04.01-x86_64.iso of=/dev/sdb status=progress oflag=sync

[jeffry@hulkbuster Downloads]$ sudo dd bs=4M if=./archlinux-2020.04.01-x86_64.iso of=/dev/sdb status=progress oflag=sync
680525824 bytes (681 MB, 649 MiB) copied, 152 s, 4.5 MB/s
162+1 records in
162+1 records out
680525824 bytes (681 MB, 649 MiB) copied, 152.336 s, 4.5 MB/s


5. Cubaan pertama untuk boot pena usb nie gagal!!. Ini kerana bios laptop ini enable security boot. Selepas dah disable security boot baru boleh boot usb ini :-

Tengok dia punya boot menu pun dah seram kan? Tapi untuk sebahagian orang ini bukan seram tapi stim! :)

Saturday 25 April 2020

Macam mana nak dapat directory listing yang cantik dari curl?

Bila kita pergi ke laman yang buat  "directory listing" dengan curl, kita akan dapat source code laman tersebut. Ini serabut!!

[jeffry@hulkbuster nginx]$ curl localhost/files/
<html>
<head><title>Index of /files/</title></head>
<body>
<h1>Index of /files/</h1><hr><pre><a href="../">../</a>
<a href="file1">file1</a>                                              25-Apr-2020 06:08                   0
<a href="file2">file2</a>                                              25-Apr-2020 06:08                   0
<a href="tarfile.tar.gz">tarfile.tar.gz</a>                                     25-Apr-2020 14:06                 130
</pre><hr></body>
</html>


Nak paparan yang cantik kita kena buang html tags tersebut dengan menggunakan sed :)

sed 's/<\/*[^>]*>//g'

Contoh penggunaan:-

[jeffry@hulkbuster nginx]$ curl -s localhost/files/ | sed 's/<\/*[^>]*>//g' | grep -v Index


file1                                              25-Apr-2020 06:08                   0
file2                                              25-Apr-2020 06:08                   0
tarfile.tar.gz                                     25-Apr-2020 14:06                 130





Kalau di aplikasi pelayar web nampak macam ni


semoga bermanfaat

Docker tak boleh mount volume atau bindmount kat Fedora 31?

Kalau korang cuba nak mount volume atau bindmount nanti akan dapat error "cgroup mountpoint does not exist" seperti di bawah

jeffry@hulkbuster nginx]$ docker run --name mynginx2 -P -v myvol:/usr/share/nginx/html nginx 
docker: Error response from daemon: cgroups: cgroup mountpoint does not exist: unknown.
ERRO[0002] error waiting for container: context canceled

Error ini disebabkan Fedora 31 telah berubah kepada cgroup2 dan cgroup2 belum disokong olah Docker. Docker hanya boleh berfungsi dengan cgroup versi 1. cgroup atau nama panjangnya control group ialah bahagian kernel untuk menghad dan mengasiangkan resource seperti cpu, memory dan network. Oleh itu, untuk guna Docker di Fedora 31, kita kena patah balik ke cgroup versi 1. Untuk guna cgroup ini kita perlu letakan "systemd.unified_cgroup_hierarchy=0" sebagai kernel argument. Salah satu cara ialah dengan meletakan ia dia /etc/default/grub seperti dibawah:-
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet systemd.unified_cgroup_hierarchy=0"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true


kemudian bina semula configurasi grub
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

kemudian reboot untuk menggunakan kernel dengan argumen yang baru
sudo reboot


lepas reboot dah boleh jalan :).

Semoga bermanfaat 

Saturday 18 April 2020

Tiada lagi Sistem Operasi Windows di rumah ku

Mulai hari ni, rumah kami sudah bebas dari Windows. Kebahagiaan terserlah... 😁




Al-kisah, komputer bini aku punya Windows dah nak luput. Nak beli lesen macam membazir pulak. Last2  install Fedora :)


Friday 17 April 2020

Macam mana nak guna Docker di Windows dengan Harbor yang pakai self-signed cert

Secara lalai. Docker tak boleh cakap dengan Harbor yang pakai self-signed cert. Nanti dapat error macam kat bawah ni;-



Nak betulkan ni buat yang berikut:-

1. Mintak root ca dari Admin Harbor. Kalau dia tak tahu boleh tunjuk gambar nie kat dia :)


2. Install root ca tu. Kat windows apa lagi kalau tak double klik file ca.crt atau klik kanan dan "Install cert". Lepas tu layanlah klik-klik tu sampai habis











3. Lepas dah install cert tu kena restart docker.



4.  Lepas tu boleh cuba login balik ke harbor tu. Sepatutnya dah boleh.



Semoga bermanfaat.



Macam mana hendak guna harbor yang menggunakan self-signed cert

Docker akan mengeluh sekiranya anda menggunakan Harbor yang menggunakan sijil ssl yang diiktiraf sendiri ( self-signed certificate). Untuk berhubung dengan Harbor yang sedemikian anda perlu membuatkan Docker anda percaya dengan ketulinan sijil tersebut. Ini bergantung kepada sistem operasi pelanggan. Saya pengguna Fedora oleh itu saya nak tunjuk cara untuk Fedora.

1. Pertama sekali anda perlu minta Root Certificate dari Admin Harbor. Jika admin Harbor anda tak tahu apa nak buat, tunjukan gambar ni kat dia dan suruh dia downloadkan "Registry Root Certificate":-



2. Setelah anda dapatkan root certificate tersebut( ca.crt ), buat yang berikut:-
  • Login root account
  • Buat directory "mkdir /etc/docker/certs.d/<url docker>.com.my/"
  • copy root certificate ke directory yang di atas 
  • cuba login ker harbor

Contoh :-


[jeffry@hulkbuster ~]$ sudo -i
[sudo] password for jeffry: 
[root@hulkbuster ~]# 
[root@hulkbuster ~]# mkdir /etc/docker/certs.d/xx.com.my
[root@hulkbuster ~]# cp ca.crt /etc/docker/certs.d/xx.com.my
[root@hulkbuster ~]# docker login xx.com.my
Username: jeffry 
Password: ******
Error response from daemon: Get https://harbor.dev.kubix.tm.com.my/v2/: dial tcp: lookup harbor.dev.kubix.tm.com.my on 192.168.0.1:53: no such host
[root@hulkbuster ~]# docker login harbor.dev.kubix.tm.com.my

WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@hulkbuster ~]#

Thursday 16 April 2020

Asal usul centos Linux

Semalam saya di tugaskan untuk memberi latihan kepada rakan-rakan sekerja berkenaan Centos Linux. Saya nak kongsikan apakah sejarah Centos Linux berdasarkan kajian saya :-

Centos Linux terbina setelah Redhat tutup muat turun percuma bagi isonya. Oleh itu beberapa project dari komuniti mula membina Distro sendiri berdasarkan SRPM dari Redhat. Contoh CAOS, ArkLinux dan Whitebox. Dari pada komuniti tersebut, CAOS menjadi matang dan bertukar kepada Centos.



Dan inilah pakaian saya semalam semasa memberi latihan tersebut :p


Macam mana nak set timezone di Kubernetes pod

Untuk tetapkan timezone di Kubernetes pod, kita mesti sangkutkan tetapan timezone  dari worker node. Berikut adalah contoh fail manifest untuk buat sedemikian. Di dalam contoh ini saya deploy aplikasi nginx dan tetapkan timezone Kuala Lumpur kepanyanya dengan mount point tz-kl 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
        volumeMounts:
          - name: tz-kl
            mountPath: /etc/localtime
      volumes:
        - name: tz-kl
          hostPath:
            path: /usr/share/zoneinfo/Asia/Kuala_Lumpur

Kita boleh semak pod kita dah pakai timezone KL ke belum dengan menggunakan command date. Jika dah pakai timezone KL date akan paparkan  +08 pada bahagian timezone.

Sunday 12 April 2020

Fedora 101 kor kids

I just bought a refurbished laptop from Lazada for RM1K (inlcuding tax) for my kids. I Straight away installed Fedora Linux



The laptop specs:

CPU

[jeffry@barbatoslupus ~]$ cat /proc/cpuinfo 
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 58
model name    : Intel(R) Core(TM) i5-3340M CPU @ 2.70GHz
stepping    : 9
microcode    : 0x21
cpu MHz        : 1196.081
cache size    : 3072 KB

MEMORY

[jeffry@barbatoslupus ~]$ cat /proc/meminfo 
MemTotal:        8053384 kB
MemFree:         5124308 kB
MemAvailable:    6129560 kB

DISK

[jeffry@barbatoslupus ~]$ sudo fdisk -l
[sudo] password for jeffry: 
Disk /dev/sda: 223.59 GiB, 240065183744 bytes, 468877312 sectors
Disk model: WDC WDS240G2G0A-
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0004c11c

How to tell this is a HDD or SSD? We can check the disk model on the net or can check weather the disk is type rotational or not. 0 means non-rotational disk or SSD. 1 means rotational disk or HDD. Ours new toy is SDD.. yeah!!

[jeffry@barbatoslupus ~]$ cat /sys/block/sda/queue/rotational 
0


 The following is Fedora 101 with my kids :)


enjoy :)

Friday 10 April 2020

Macam mana nak buat http fanout di nsx-t ingress di Kubernetes

Http fanout ialah untuk menghalakan end point pada sesuatu url kepada applikasi yang betul. Contohnya seperti gambar rajah dibawah:-


Untuk melakukan yang sedemikian, kena buat ingress manifest seperti berikut dan apply.


piVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress12
  annotations:
    kubernetes.io/ingress.class: "nsx"
    ncp/use-regex: "true"
spec:
  tls:
  - hosts: 
    - web.poc.kubix.tm
    secretName: poc-kubix-tls
  rules:
  - host: web.poc.kubix.tm
    http:
      paths:
      - path: /app1/.*
        backend:
          serviceName: svc-app1
          servicePort: 80
      - path: /app2/.*
        backend:
          serviceName: svc-app2
          servicePort: 80

Monday 6 April 2020

Macam mana nak create banyak pengguna sekali gus di Linux

Letak semua nama-nama pengguna di dalam satu teks file  name "file"  macam nie

rayyan
arrizq
alweena
qistina

Kemudian larikan script yang berikut. Skrip ini akan buat pengguna berdasarkan teks file tadi. Nama dan kata kekunci sama.

#!/usr/bin/bash
# Author: Jeffry Johar
# Date: 6th April 2020
# About: To create multiple linux users with the default password same with the user name

#if no list of user exit
if [ -z $1 ]; then
   echo "This \"myusers\" requires list of users"
   exit 1
fi

#if user not root exit
if [ "$(id -u)" != "0" ]; then
   echo "This \"myusers\" must be run as root" 
   exit 1
fi

for i in `cat $1`;
do
  echo $i;
  useradd $i;
  echo $i | passwd --stdin $i
done


Contoh penggunaan skirp nie:-

Sunday 5 April 2020

Macam mana nak install Kubernetes di komputer riba

1. Mula-mula install Fedora Linux di komputer riba anda :)
https://getfedora.org/en/workstation/download/

2. Install Docker daemon
https://docs.docker.com/install/linux/docker-ce/fedora/

2. Install kubectl . Ini adalah CLI untuk mengawal Kubernetes
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl && chmod + kubectl
install kubectl /usr/local/bin/

3. Install minikube. Ini adalah Kubernetes dengan satu node sahaja. Iaitu Master node dan worker node ialah komputer ribamu

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  && chmod +x minikube
install minikube /usr/local/bin/

4. Mulakan minikube dengan menggunakan docker sebagai  drivernya

minikube start --driver=docker

5. Larikan command berikut untuk pastikan Kubernetes telah berjaya dipasang:-

kubectl get all
Semoga bermanfaat

Saturday 4 April 2020

Khilaf dalam pemahaman apa itu Linux

Sesetengah orang menganggap Linux ialah sistem operasi. Ini sebenarnya salah! Linux sebenarnya hanyalah kernel kepada sistem operasi dan bukanya sebuah sistem operasi.

Sistem operasi yang berasaskan Linux dipanggil Linux Distribution ataupun lebih dikenali dengan nama singkatan Distro. Ini barulah sistem operasi!!!!

Di antara Distro yang terkenal termasuk Red Hat Linux, Suse Linux, Ubuntu Linux dan Fedora.

Mungkin ada yang berpendapat apa salahnya kata Linux itu sistem operasi kerana kernel sistem operasi dan sistem operasi 2 benda yang sangat rapat . Mohon rujuk kepada buah Durian. Ada beza tak biji durian dengan buah durian walaupun dua-dua ini sangat rapat? Biji buah durian tak boleh makan dan isi buahnya boleh dimakan. Semestinya dua benda ini tak sama.

Saya katakan kernel sistem operasi seperti biji buah durian dan isinya ialah sistem operasi yang bermanfaat. Kulit buah durian pula adalah pelindung. Kalau tak ada pun tak apa. Ini sama macam lesen Enterprise support :p

Untuk maklulat lanjut berkenaan Linux, sila layari https://www.kernel.org/

Semoga bermanfaat


Friday 3 April 2020

Macam mana hendak replicate Harbor

Kadang-kadang ada keperluan untuk replicate image dari Harbor A ker Harbor B. Berikut adalah langkah-langkah yang perlu diambil untuk replicate di antara 2 Harbor

1. Pergi ker Harbor destinasi dan pergi ker project yang hendak di replicate. Kemudian create robot account


2. Pergi ker Harbor sumber dan create REGISTRIES


3. Kemudian create NEW REPLICATION RULE

- gunakan registry yang dibuat pada langkah ke2
- Name ialah project name di Harbor. Pastikan ada "/**" untuk replicate semua image-image di dalam project tersebut


Wednesday 1 April 2020

Macam mana nak install Jenkins di Docker

1. Larikan Jenkins dengan Docker Volume merupakan persistence volume yang akan menyimpan konfigurasi Jenkins.
docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 jenkins/jenkins:lts

2. Kemmudian pergi ke Web Browser dan masukan alamat ini
http://localhost:8080/


3. Untuk dapatkan Administrator password ini, kita perlu lakukan 2 langkah yang berikut.

i. Larikan arahan "docker ps" untuk dapatkan nombor CONTAINER ID
$ docker ps 
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
58d5e184be29        jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   10 minutes ago      Up 10 minutes       0.0.0.0:8080->8080/tcp, 50000/tcp   vibrant_boyd

ii. Larikan arahan docker exec berikut dengan menggunakan CONTAINER ID dari langkah pertama tadi
$ docker exec -ti 58d5e184be29 sh -c "cat /var/jenkins_home/secrets/initialAdminPassword"
6c291578354e4b11924d7a7042120294

4. Masukan kekunci di atas pada Jenkins di http://localhost:8080 tadi. Jika betul, akan dapat laman yang berikut. Jika keliru, pilihlah "Install suggested plugins":-



5. Kemudian klik-klik-klik sampai dapat :)




semoga bermanfaat

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...