In this tutorial, How to create DevOps CI/CD pipelines using Git, Jenkins, Ansible, Docker, and Kubernetes on AWS. How to learn DevOps. Step-by-step Hand-on Lab DevOps CI/CD pipeline tutorial part 1.
Table of Contents
DevOps Flow
What is Continuous Integration?
It is a DevOps software development. It contains some combination of tools such as the Version Control System, Builds server, and testing automation tools.
What is Continuous Delivery (CD) & Continuous Deployment (CD)?
It is a practice that could be achieved. Combination of CI tool, configuration management tool, and orchestration tool.
How to Install Jenkins on AWS EC2
Jenkins is a self-contained Java-based program. Use Jenkins ci/cd pipeline for any project.
Prerequisites
Amazon EC2 Instance
- EC2 with Internet Access
- Security Group with Port
8080
open for internet
Java
- Version 1.8.x
Install Java on Amazon EC2
Get the latest version from here.
[root@Jenkins_Server ~]# yum install java-1.8*
You need to confirm Java Version and set the java home in Linux.
# find java version on Linux [root@Jenkins_Server ~]# find /usr/lib/jvm/java-1.8* | head -n 3 # To set JAVA_HOME it permanently update your .bash_profile [root@Jenkins_Server ~]# vi ~/.bash_profile [root@Jenkins_Server ~]# java -version # Result, The output should be something like this [root@Jenkins_Server ~]# find /usr/lib/jvm/java-1.8* | head -n 3 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre/bin [root@Jenkins_Server ~]# cat ~/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 PATH=$PATH:$HOME/bin:$JAVA_HOME export PATH [root@Jenkins_Server ~]# java -version openjdk version "1.8.0_232" OpenJDK Runtime Environment (build 1.8.0_232-b09) OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode) [root@~]# echo $JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64
Install Jenkins on Amazon EC2
Get the latest version of Jenkins from here. You can install Jenkins using the rpm or by setting up the repo.
[root@Jenkins_Server ~]# yum -y install wget
[root@Jenkins_Server ~]# sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
[root@Jenkins_Server ~]# sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@Jenkins_Server ~]# yum -y install jenkins
Start Jenkins
[root@Jenkins_Server ~]# service jenkins start
[root@Jenkins_Server ~]# chkconfig jenkins on
Accessing Jenkins from Browser
By default, Jenkins runs at port 8080
http://[YOUR-SERVER]or [PUBLIC-IP]:8080
Configure Jenkins
- The default Username is
admin
- Grab the default password
- Password Location:
/var/lib/jenkins/secrets/initialAdminPassword
Skip
Plugin Installation;
Change admin password
Configure java
path
Manage Jenkins
> Global Tool Configuration
> JDK
How to Run First Jenkins Job
I use to create a Jenkins job simple. step by step as in the example picture below.
Example, “Test_Jenkins_Job” job.
In Build –> select “execute shell”
Click Build Now
Configure Git plugin for Jenkins
Git is a version control system. It is an open-source tool. You can pull code from git repo using Jenkins.
Install git packages on the Jenkins server
[root@Jenkins_Server ~]# yum install git -y
Setup Git on Jenkins console
Install the git plugin without a restart. For this tutorial, I use the Gitlab plugin (example)
Manage
Jenkins
> Jenkins Plugins
> available
> git
lab
Configure git path
Manage Jenkins
> Global Tool Configuration
> git
Install and configure Maven for Jenkins
Maven is a software project management and comprehension tool. It is a code-build tool used to convert your code to an artifact.
Install Maven on Jenkins
Download maven packages here.
[root@Jenkins_Server ~]# mkdir /opt/maven
[root@Jenkins_Server ~]# cd /opt/maven
[root@Jenkins_Server ~]# wget https://www-us.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
[root@Jenkins_Server ~]# tar -xvzf apache-maven-3.6.3-bin.tar.gz
Set up MAVEN_HOME and MAVEN2 paths in the .bash_profile of the user.
vi ~/.bash_profile
#### Example add variable maven path
# Add vairable maven here
MAVEN_HOME=/opt/maven/apache-maven-3.6.3
MAVEN2=$MAVEN_HOME/bin
PATH=$PATH:$HOME/bin:$JAVA_HOME:$MAVEN2
export PATH
Check maven version
[root@Jenkins_Server ~]# mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/maven/apache-maven-3.6.3
Java version: 1.8.0_232, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1062.9.1.el7.x86_64", arch: "amd64", family: "unix"
Setup maven on Jenkins console
Install Maven plugin without restart
Manage Jenkins
> Jenkins Plugins
> available
> choice Maven Invoker
and Maven Integration
Configure maven path
Manage Jenkins
> Global Tool Configuration
> Maven
How to create a maven job
Link Youtube DevOps CI/CD pipeline tutorial part 1
DevOps CI/CD pipeline tutorial part 1. Thank you for reading DevOpsRoles.com page
3 thoughts on “DevOps CI/CD pipeline tutorial part 1”