ယနေ့ခေတ်မှာ CI CD နဲ့ ပတ်သက်လို့ tools တွေများစွာကို release လုပ်လာကြပါတယ် ။ အဲ့ဒီ tools တွေထဲကမှ Jenkins , Gitlab CI/CD, Spinnaker, AWS CodeStar နဲ့ Travis CI တို့ဟာ အသုံးအများဆုံး tools တွေပဲဖြစ်တယ်။ ဒါကြောင့် CI CD လို့ ပြောလိုက်တာနဲ့ ကျွန်တော်တို့တွေဟာ Jenkins အကြောင်းကိုမေ့ထားလို့မရပါဘူး။ Jenkins ဟာ java-based open-source automation serverတစ်ခုဖြစ်ပြီး deb/rpm packages (သို့) Docker (သို့) Jenkins Warfile တစ်နည်းနည်းနဲ့ install လုပ်နိုင်ပါတယ်။ ဒါကြောင့်ဒီနေ့မှာ ကျွန်တော်တို့တွေ Ubuntu Server တစ်လုံးပေါ်မှာ Jenkins ကိုinstall လုပ်ပုံကိုလေ့လာလိုက်ကြရအောင်ဗျာ။
Prerequisites
- Jenkins ကို install လုပ်မယ့် server တစ်လုံးဟာ အနည်းဆုံး RAM 4GB ရှိဖို့တော့လိုပါတယ်
- JDK 11 ကို install လုပ်ထားပေးဖို့လည်း လိုပါတယ်
JDK 11 မသွင်းရသေးဘူးဆိုရင် လည်း apt install နဲ့ အလွယ်တကူသွင်းနိုင်ပါတယ်။
$ sudo apt update -y && sudo apt install default-jdk -y
$ java --version
Installing Jenkins on Ubuntu
$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt update -y
$ sudo apt install jenkins -y
Jenkins ကို install လုပ်ပြီးသွားရင် service active ဖြစ် မဖြစ် သိရအောင် systemctl နဲ့တစ်ချက်လောက် စစ်ကြည့်ရအောင်
$ sudo systemctl status jenkins.service
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: active (exited) since Mon 2021-07-05 23:32:59 +0630; 8s ago
Docs: man:systemd-sysv-generator(8)
Process: 1188529 ExecStart=/etc/init.d/jenkins start (code=exited, status=0/SUCCESS)
ဇူ 05 23:32:58 thaunghtikeoo systemd[1]: Starting LSB: Start Jenkins at boot time...
ဇူ 05 23:32:58 thaunghtikeoo jenkins[1188529]: Correct java version found
ဇူ 05 23:32:58 thaunghtikeoo jenkins[1188529]: * Starting Jenkins Automation Server jenkins
ဇူ 05 23:32:58 thaunghtikeoo su[1188568]: (to jenkins) root on none
ဇူ 05 23:32:58 thaunghtikeoo su[1188568]: pam_unix(su-l:session): session opened for user jenkins by (uid=0)
ဇူ 05 23:32:58 thaunghtikeoo su[1188568]: pam_unix(su-l:session): session closed for user jenkins
ဇူ 05 23:32:59 thaunghtikeoo jenkins[1188529]: ...done.
ဇူ 05 23:32:59 thaunghtikeoo systemd[1]: Started LSB: Start Jenkins at boot time.
Jenkins service က active ဖြစ်နေပြီဆိုတော့ jenkins ဟာ localhost ရဲ့ port 8080 မှာ run နေပြီဖြစ်ပါတယ်။ port number 8080 ကို defautl အနေနဲ့သုံးပါတယ်။ ကျွန်တော်တို့ အနေနဲ့ Jenkins portကို ပြောင်းချင်ရင်တော့ /etc/default/jenkins မှာ HTTP_PORT variable ကို မိမိ ပြောင်းမယ့် port ကို ပေးရမှာဖြစ်ပါတယ်။
ဒီ tutorial မှာတော့ default port 8080ကိုပဲအသုံးပြုပါမယ်။ ဒါကြောင့် မိမိကြိုက်နှစ်သက်ရာ browser ကိုသွားပြီး localhost:8080 ကိုခေါ်လိုက်ပါ။ ဒါဆိုရင် အောက်ပါပုံအတိုင်း Unlock Jenkins Screen ကို တွေ့ရမှာပဲဖြစ်ပါတယ်။

Admin Password ကို အပေါ်ကပုံမှာ ပေးထားတဲ့ file ကို cat command နဲ့ ဖွင့်ရင် သိနိုင်ပါတယ်။
$ cat /home/thaunghtikeoo/.jenkins/secrets/initialAdminPassword
ရလာတဲ့ password ကို copy paste လုပ်ပြီး continue ကို နှိပ်လိုက်ပါ။ နောက်တစ်ဆင့်ကတော့ အောက်ကပုံထဲကအတိုင်း plugins တွေ install လုပ်ပေးရမှာဖြစ်ပါတယ်။ default အနေနဲ့ကတော့ Install Suggested Plugins ကို ရွှေးနိုင်ပြီး နောက်ပိုင်းမှ မိမိတို့ လိုအပ်တဲ့ plugins ကို တစ်ခုချင်း install လုပ်နိုင်ပါတယ်။

Install suggested Plugins ကိုရွေးပြီး မိနစ်အနည်းငယ်စောင့်ပါ

Plugins တွေ install ပြီးတဲ့အခါမှာတော့ အောက်ကပုံထဲကအတိုင်း admin user တစ်ယောက်ကို create လုပ်ပေးရမှာဖြစ်ပါတယ်။ admin user တစ်ယောက် create မလုပ်ချင်ဘူးဆိုရင် skip and continue as admin ကိုနှိပ်ပြီး default admin user အနေနဲ့ Jenkins ကိုအသုံးပြုနိုင်ပါပြီ။ default admin user ရဲ့ username ဟာ admin ဖြစ်ပြီး password ကတော့ အပေါ်မှာ cat command နဲ့ယူခဲ့တဲ့ initial password ဖြစ်ပါတယ်။

Admin User တစ်ယောက် create ပြီးတဲ့အခါမှာတော့ Jenkins Instance URL ကို သတ်မှတ်ပေးရမှာဖြစ်ပါတယ်။ URL ကို မိမိကြိုက်နှစ်သက်ရာ private server domain တစ်ခု (သို့) Jenkins server ရဲ့ ip address ကိုထည့်ပေးရမှာဖြစ်ပါတယ်။ URL ပေးပြီးသွားရင်တော့ Save and Finish ကိုနှိပ်ပြီး Jenkins Server တစ်ခုကို စတင်အသုံးပြုနိုင်ပါပြီ ခင်ဗျာ။

Save and Finish ကိုနှိပ်ပြီးတဲ့ အခါမှာတော့ Jenkins is Ready ဆိုပြီး welcome screen ကို တွေ့ရမှာဖြစ်ပါတယ်။ ပြီးရင် Start Using Jenkins ကိုနှိပ်လိုက်ပါ

ဒါဆိုရင် တော့ Jenkins Dashboard ကို တွေ့ရမှာဖြစ်ပြီး Jenkins Server တစ်ခုကို အောင်မြင်စွာ setup လုပ်နိုင်ခဲ့ပါပြီ

Conclusion
အဆုံးထိ ဖတ်ပေးခဲ့ကြတဲ့ တစ်ဦးတစ်ယောက်ချင်းစီတိုင်းကို ကျေးဇူးတင်ပါတယ် ခင်ဗျာ။ နောက်အပတ်တွေမှာ Jenkins ကို အသုံးပြူပြီး CI CD pipeline တွေနဲ့ automation ပြုလုပ်ပုံတွေကို share ပေးမှာဖြစ်လို့ ဆက်လက် အားပေးကြပါဦး ခင်ဗျာ။
Thanks for Reading ..