Install and Configure Jenkins Master and Jenkins Agent via SSH (Part-01)
1. Introduction
Jenkins áá˛áˇ áĄááŻáážá áááá˝áąáˇáááˇáşáá°áá˝áąáĄáá˝ááş áĄááąáŹááşáĄáá° áá áşááŻááźá áşá áąáááŻáˇ ...
Jenkins áááŻáˇáááŻáááŻááşááŹáá˛áˇ áá°ááŻáśá¸áĄááťáŹá¸ááŻáśá¸ CI/CD Tools áá˝áąáᲠá áá áşáᯠáááŻááŹááąáŹáˇáĄáŹá¸ááŻáśá¸ááááźáŽá¸ááźááźáŽááźá áşáážáŹááŤá Open Source ááźá áşááźáŽá¸ áá°áˇáážáŹ áááźáŹá¸ Third Party tools áá˝áąáá˛áˇ áĄááťáŹá¸áĄááźáŹá¸ Integrate ááŻááşáááŻáˇáááŤáááşá áᎠarticle áážáŹááąáŹáˇ Jenkins Master and agent ááᯠáááşááᯠSetup ááŻááşááá˛áááŻááŹááᯠLab áĄááŹá¸ááąá¸ ááźáąáŹááźááąá¸áá˝áŹá¸áážáŹááŤá
Jenkins Master: Jenkins Master áááŻááŹáááąáŹáˇ Jenkins Systems áá áşááŻááŻáśá¸ááᯠManage ááŻááşááąá¸áá˛áˇ Server áááŻáˇáĄáá˝ááşáážááşáááŻáˇááááşá Agent Node áá˝áąá Pipeline Jobs áá˝áąá Plugin and tools áá˝áąá Security Credential áá˝áą áĄá áážááááźááˇáş Jenkins system áá áşááŻááŻáśá¸ááᯠMaster Node áá˛áˇ Web UI áááą Manage ááŻááşááźáááŤáááşá
Jenkins Agents or Slave: Jenkins Agents áá˝áąáááąáŹáˇ áá áşáááşá¸áĄáŹá¸ááźááˇáş Worker Node áá˝áąáááŻáˇáááşá¸ áááŻáááŻááşááŤáááşá GitHub Actioná GitLab CI áá˛áˇ Bitbucket pipeline áááŻáˇ áážáŹ áááŻáááş Runner áááŻáˇ ááąáŤáşááźááŤáááşá Agents áá˝áąá Virtual Machine or Container áá˝áąáááşá¸ááźá áşááąáááşááŤáááşá áá°áááŻáˇáááąáŹáˇ Master node áááą assign ááťááŹáá˛áˇ Tasks áá˝áąááᯠááŹáááşáá°ááŤáááşááĽáááŹáĄáŹá¸ááźááˇáş Pipeline A ááᯠAgent A áážáŹ run ááąá¸ááŤáááŻáˇ áááşáážááşááąá¸áááŻááşááŹáá˛áˇ Pipeline A áá˛áážáŹáááşáážááşááŹá¸áá˛áˇ steps áá˝áą áĽááᏠApplication Artifact or Container Build ááŻááşááŹáá˝áą Testing ááá ášá áá˝áą áĄá áážááááźááˇáş Jenkinsfile áá˛áážáŹ áááˇáşááąá¸ááąá¸áááŻááşáá˛áˇ Steps áá˝áąáĄáŹá¸ááŻáśá¸ áĄá˛áˇ áᎠAgent A ááąáŤáşáážáŹ run áá˝áŹá¸ááŤáááşá áĄá˛áˇááŽáážáŹ áááááŹá¸ááážáŹáá áşááŻá Pipeline áá˛áážáŹááŤáá˛áˇ steps áá˝áąáá˛áˇ Dependency áá˝áąááᯠAgent áá˝áąáážáŹ ááźááŻáááş Install ááŹá¸áááŻáˇ áááŻááŤáááşá áĽááᏠDocker Build áááşáááŻáˇ Jenkinsfile áážáŹ ááąá¸ááŹá¸áááş áĄá˛áˇáᎠPipeline run áááşáˇ Agent ááąáŤáşáážáŹ Docker Engine ááᯠInstall ááŻááşááŹá¸áááŤáááşá áĄááąáŤáşáážáŹááźáąáŹáá˛áˇáá˛áˇ Jenkinsfile áááŻááŹáááąáŹáˇ pipeline áá˛áážáŹ ááŹáá˝áąááŻááşááá˛ááᯠáá˛áˇ pipeline stage áá˝áąááᯠáááşáážááşááŹá¸áá˛áˇ áááŻááşááąá¸áá áşáááŻááşááźá áşááŤáááşá áá°áˇááᯠGroovy syntax áá˛áˇááąá¸áááŤáááşá
Learn More:https://www.jenkins.io/doc/book/using/using-agents/
2. Prerequires
Check System Requirements
AWS EC2 ááŻáśá¸áááşáááŻáááşááąáŹáˇ workload áĄáááşá¸áááťáŹá¸áá°á¸ testing áĄáá˝ááşááᯠt2.micro ááąáŹááşááŻáśá¸áááŻáˇáááąáááˇáş t2.medium ááąáŹááşááᯠRecommend ááŻááşááťááşááŤáááşá
2 vCPUs 4G RAM ááąáŹááşááąáŤáˇ
Supported platforms and requirements ááᯠááŽáážáŹááźááˇáşáááŻááşááŤáááşá
https://www.jenkins.io/doc/book/installing/linux/#prerequisitesTwo Linux machines with SSH connection (master and agent)
áᎠLab Setup áĄáá˝ááş Virtual Machine áážá áşááŻáážááááŤáááşá
ááťá˝ááşááąáŹáşáááąáŹáˇ AWS EC2 t2.medium áá˛áˇ OS ááᯠUbuntu 22.04.2 LTS (Jammy Jellyfish) ááᯠMaster áĄáá˝ááşáá áşáᯠAgent áĄáá˝ááşáá áşáᯠáĄáááşáááˇáşááźááşááŹá¸áááŻááşááŤáááşá Local laptop áážáŹáᲠá ááşá¸ááťááşááąáŹáˇ Vagrant or VirtualBox áááŻáˇáá˛áˇáááşá¸á ááşá¸áááŻááşááŤáááşá VM áážá áşááŻá SSH Connection ááąáŹááşá¸ááąáŹááşá¸áážááááŻáˇáááŻááŤáááşáJava Runtime Dependency:
Jenkins á Java-based application ááźá áşááŹááááŻáˇ áá°áˇáááŻááąáŹááşá¸ááąáŹááşá¸ RunáááŻááşáááŻáˇáááŻáááş JRE (Java Runtime Environment) áááŻááŤáááşáMaster ááąáŹ Agents áĄáá˝ááşááŤáááŻáážáŹááŤá
3. Jenkins Installations
3.1 JRE Installations on both the master and agent.
JRE 17 ááᯠinstall ááŻááşááŤáááşá
sudo apt install openjdk-17-jre-headless -y
3.2 Install Jenkins on Master
Jenkins repo áĄáá˝ááş GPG Key download ááŻááşááŤáááşá
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
Jenkins Repo ááᯠAPT Sources áá˛áážáŹ Add ááŤáááşá
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/nullpdate APT Package Index
ááźáŽáááşááąáŹáˇ apt update ááąá¸ run áááŻááşááŤá
sudo apt-get update
Jenkins áááŻá ááźáŽá¸ Install ááŻááşáááŻáˇáááŤááźáŽá
sudo apt-get install jenkins
Install ááŻááşááźáŽá¸áá˝áŹá¸áááş ááąáŹáˇ Jenkins Service StatusááᯠáᎠCommand ááąá¸áá˛áˇá á áşááźááˇáşáááŻááşááŤáááşá
sudo systemctl status jenkins
Learn More: https://www.jenkins.io/doc/book/installing/linux/#debianubuntu
4. Access to Jenkins Console
4.1 Access to Jenkins Console via browser
Install ááŻááşááźáŽá¸ Jenkins Service áááşá¸ running ááźá
áşááąááźáŽáááŻáááşááąáŹáˇ Browser áááą Jenkins Master VM áá˛áˇ IP áá˛áˇ Default port number 8080 ááᯠááąáŤáşááźááˇáşáááŻááşááŤá
default port 8080 (Example:10.90.1.202:8080
)
AWS EC2 ááŻáśá¸áá˛áˇáá°áá˝áąáááąáŹáˇ Public IP áá˛áˇááąáŤáşááážáŹááźá
áşááźáŽá¸ port number 8080 ááᯠsecurity group áážáŹ anywhere allow ááŻááşááŹá¸áááŻáˇáááşá¸áááŻááŤáááşá Local áážáŹá
ááşá¸áá˛áˇáá°áá˝áąáááąáŹáˇ ááąáŤáşáááŻáˇááááąá¸áááş Jenkins Service áá˛áˇ Firewall rules áá˝áąááᯠáá
áşááťááşá
á
áşááźááˇáşáááŻááşááŤáááşá
4.2 Initial setup
Browser áááą Access áááźáŽáááŻááŹáá˛áˇ áᎠpage ááᯠáĄáááşááŻáśá¸áá˝áąáˇááážáŹááŤá
Initial Administrator Password ááᯠJenkins server áá˛á /var/lib/jenkins/secrets/initialAdminPassword
ááŽáááŻááşááąá¸ááᯠáá˝ááˇáşáááşááźáŽá¸ áááážááááŻááşááŤáááşá Password ááᯠCopy áá°á¸ááŹááźáŽá¸ paste ááťááźáŽá¸áááşááąáŹáˇ Continue áááşáá˝áŹá¸áááŻááşááŤá
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
ááŹáááşá áá áşááŻáááąáŹáˇ áááŻááşáˇáááŻáĄááşááťááşááąáŤáşáá°áááşááźáŽá¸ááźááŻááşááŹáá˝áąá¸ááźáŽá¸ Plugins áá˝áąááᯠInstall ááŻááşáááŻááşááŤáááşá ááŽáážáŹ ááťá˝ááşááąáŹáş áááąáŹáˇ áááşáááşá suggested plugins áááŻááŹáááŻáá˛áá˝áąá¸ááźáŽá¸áááşáá˝áŹá¸ááŤáááşá
ááźáŽá¸áááşááąáŹáˇ Admin User Create ááŻááşáááŻááşá¸ááŤááááˇáşáááşá áááŻáĄááşááŹáá˝áąááźááˇáşá á˝ááş ááźáŽá¸áááşáá˝áŹá¸áááŻáˇáááŤááźáŽá
áĄááŻáááŻáááşááąáŹáˇ Jenkins Ready ááźá áşááŤááźáŽá Master Node áážáŹ Jenkins ááᯠInstall ááŻááşáááŻáˇ áĄáąáŹááşááźááşáá˝áŹá¸ááŤááźáŽá
Thank you for taking the time to read this article! Feel free to connect and share your thoughts or questions.
Part 02 áážáŹááźááşáááşáá˝áąáˇááŤáááş ...á
Part 02
Subscribe to my newsletter
Read articles from Wai Yan Soe directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by