Jenkins is a free and open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery.
This post will explain the process of how to integrate CI/CD pipeline using Jenkins, GitHub, and Ansible.
Environment :
Ansible playbook to deploy two apache web servers with HAproxy load balancer.
- GCP environment
- github for SCM
- host1: Centos 7 + jenkins + ansible + git --> used for jenkins server
- host2: Centos 7 + ansible + git --> used for jump host
- host3: Centos 7 --> Apache web server1
- host4: Centos 7 --> Apache web server2
- host5: Centos 7 --> HAproxy load balancer server
Install jenkins server:
yum install httpd -y
systemctl enable httpd
systemctl start httpd
yum -y install java-1.8.0-openjdk
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum -y install jenkins-2.164.2
systemctl enable jenkins
systemctl start jenkins
Check jenkins port status and open firewall ports :
# netstat -na | grep 8080
tcp6 0 0 :::8080 :::* LISTEN
# iptables-save | grep 8080
# firewall-cmd --zone=public --add-port=8080/tcp --permanent success
# firewall-cmd --reload
success
# netstat -na | grep 8080
tcp6 0 0 :::8080 :::* LISTEN
Note:- Allow port 8080 on GCP - VPC firewall rules
Install required packages and plugins :
# yum install git -y
# yum install ansible -y
Generate ssh key
Copy ssh key to remote machine where Ansible playbook to be run
Install git,Ansible plugin, and publish over ssh from jenkins gui
# vim /etc/ansible/ansible.cfg
# *****uncomment this to disable SSH key host checking****
host_key_checking = False
First time login to jenkins GUI :
Integrate github with jenkins :
Github --> Setting --> Developer settings --> Personal access tokens --> Generate new token
Generate token and copy it
Manage Jenkins --> Configure system
Select credentials as Jenkins
Key in the secret which you copied from github
Select Manage hook and Test the connection
Creating Jenkins job (project) :
Enter project name and select Freestyle project
On Source Code Management select Git and key in corresponding git repository url
On Build Triggers select " Github hook trigger for GitScm polling "
On build select option "Invoke Ansible Playbook"
Specify appropriate playbook path and host file
Configure Global Security :
Verify integration between github and jenkins :
Testing :
Copy necessary jenkins ssh key to remote hosts where ansible play book to be run.
Console output from Jenkins project while code push to github repository master origin
Started by GitHub push by vdsridevops
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/web-haproxy
No credentials specified
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url https://github.com/vdsridevops/web-haproxy.git # timeout=10
Fetching upstream changes from https://github.com/vdsridevops/web-haproxy.git
> git --version # timeout=10
> git fetch --tags --progress https://github.com/vdsridevops/web-haproxy.git +refs/heads/*:refs/remotes/origin/*
> git rev-parse refs/remotes/origin/master^{commit} # timeout=10
> git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 7b6047a5b55f1884c9a6dd3e554c0af62b0d295b (refs/remotes/origin/master)
> git config core.sparsecheckout # timeout=10
> git checkout -f 7b6047a5b55f1884c9a6dd3e554c0af62b0d295b
Commit message: "3rd commit"
> git rev-list --no-walk 8f4a280a813c5506ac5c951490d637fac5068e8c # timeout=10
[web-haproxy] $ sshpass ******** /usr/bin/ansible-playbook /var/lib/jenkins/workspace/web-haproxy/main.yml -i /var/lib/jenkins/workspace/web-haproxy/hosts -f 5 -u root -k
PLAY [Install apache] **********************************************************
TASK [Gathering Facts] *********************************************************
ok: [ansible-node1]
ok: [ansible-node2]
TASK [apache : install apache on web server] ***********************************
ok: [ansible-node1] => (item=httpd)
ok: [ansible-node2] => (item=httpd)
ok: [ansible-node1] => (item=httpd-tools)
ok: [ansible-node2] => (item=httpd-tools)
TASK [apache : copy php file] **************************************************
ok: [ansible-node1]
ok: [ansible-node2]
PLAY [install and configure Loadbalancer] **************************************
TASK [Gathering Facts] *********************************************************
ok: [haproxy]
TASK [haproxy : Install haproxy] ***********************************************
ok: [haproxy]
TASK [haproxy : Copy haproxy config file] **************************************
ok: [haproxy]
PLAY RECAP *********************************************************************
ansible-node1 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansible-node2 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
haproxy : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Finished: SUCCESS
Harrah's Cherokee Casino - Mapyro
ReplyDeleteDiscover the Harrah's Cherokee Casino, 거제 출장샵 NC area and other attractions 안동 출장안마 in North Carolina. See photos, videos and 양산 출장마사지 read real 김해 출장안마 customer 남원 출장안마 reviews at
SEGA SAMMY CREATION INC. is a Japan-based company established in June 2013. We manufacture thrilling and never-before-seen gaming machines by utilizing the various sources from theSEGA SAMMY GROUP. Connect with us onLinkedIn. Thanks for reading this text; might also|you can even} get individual chapter-wise sections or region-wise report variations like North America, MINT, BRICS, G7, Western / Eastern Europe, or Southeast Asia. Also, we can to} serve you with customized research providers as HTF MI holds a database repository that features public organizations and Millions of Privately held companies with expertise across varied Industry domains. The Caesars Virginia on line casino, currently beneath development, is expected to generate as much as} $38 million in tax revenue to the town after it's up and working in 2024. Earlier Wednesday, Japanese Defense Minister Yasukazu Hamada advised reporters that a minimum of|no less than} two ballistic missiles fired 우리카지노 by North Korea showed a possibly “irregular” trajectory.
ReplyDelete