CentOS7安装部署Jenkins

Jenkins简介

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

本文研究一下在CentOS7(IP为192.168.56.104)上安装部署Jenkins,可以管理部署GitLab中的项目(IP为192.168.56.103)到Web服务器(IP为192.168.56.105)。

环境准备

1、在Jenkins服务器编辑hosts
vim /etc/hosts,添加:

1
192.168.56.103  gitlab.voidking.com

2、创建密钥
ssh-keygen
/root/.ssh目录下生成了私钥id_rsa和公钥id_rsa.pub。

3、添加公钥到gitlab
浏览器访问 https://gitlab.voidking.com/profile/keys ,把公钥粘贴进去。

4、安装git
yum install git

安装Jenkins

Jenkins依赖Java,因此首先参考《全平台安装JDK》,安装配置好JDK,然后如下步骤安装Jenkins。

1、添加jenkins源:

1
2
wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo 
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

2、安装jenkins:

1
yum install jenkins

3、启动jenkins:

1
service jenkins start

Jenkins安装目录:/usr/lib/jenkins/
Jenkins配置文件:/etc/sysconfig/jenkins

4、防火墙设置

1
2
firewall-cmd --add-port=8080/tcp --permanent
systemctl reload firewalld

5、基本设置
浏览器访问 http://192.168.56.104:8080 ,即可看到jenkins页面。

cat查看管理员密码,填入页面,继续;安装推荐的插件;创建第一个管理员;设置Jenkins URL;开始使用Jenkins。

使用Jenkins

1、新建项目
点击新建Item或者创建一个新任务,新建项目。

选择Freestyle project,输入名称,确定。

2、设置源码管理

点击源码管理Tab页,选择Git,Repository URL填入`git@gitlab.voidking.com:root/voidking.git`。此时提示没有权限访问,Credentials后面点击添加,Jenkins。

Domain全局凭据(unrestricted),类型选择SSH Username with private key,范围选择全局,Username输入root,然后把id_rsa中的内容粘贴进去,添加。然后在Credentials一栏root,页面上的警告就消失了。最后保存即可。

3、构建项目

在voidking项目页面,点击立即构建,即可完成项目构建。点击控制台输出,可以看到整个构建过程。

从构建过程可以看出,整个过程只拉取了一次代码,其他啥也没做,代码存放在/var/lib/jenkins/workspace/voidking目录。

构建JavaWeb项目

构建JavaWeb项目的基本原理:Jenkins从GitLab拉取项目代码,然后在workspace的项目目录中执行mvn install命令生成war包,最后拷贝war包到Web服务器的webapps目录中并启动tomcat。

GitLab项目准备

1、使用本地环境(JDK+Tomcat+Maven),生成JavaWeb项目的war包并放入Tomcat进行测试,本文中使用pandawork-start项目。

2、上传Maven JavaWeb项目的源码到gitlab。如果gitlab不允许git push -f,那么在gitlab中点击项目名,Settings,Repository,修改Protected Branches的配置即可。

Web服务器准备

1、安装JDK,参考参考《全平台安装JDK》

2、安装Tomcat,参考CentOS7设置tomcat开机自启动

3、安装Mysql,参考CentOS7设置mysql开机自启动

4、配置免密登录,使Jenkins服务器可以免密访问Web服务器,使Jenkins可以免密访问Web服务器。
ssh-copy-id -i .ssh/id_rsa.pub -p 22 root@192.168.56.105

Jenkins服务器配置

Jenkin服务器配置主要参考Jenkins安装及自动部署Maven项目

1、安装配置Maven,参考centos7 安装maven

2、登录Jenkins,系统管理,插件管理,可选插件,下载Maven Integration。

3、返回工作台,系统管理,全局工具配置。配置JDK,配置Maven,保存。

4、Jenkins工作台,新建项目,构建一个Maven项目。源码管理配置gitlab中的Java Web项目。

5、Build选项卡,Goals and Options,输入clean install -Dmaven.test.skip=true。

6、Post Steps选项卡,Add post-build step,执行shell,填入拷贝war包和启动tomcat命令,保存。

1
2
scp /var/lib/jenkins/workspace/pandawork-start/target/pandawork-start.war root@192.168.56.105:/opt/apache-tomcat-8.5.43/webapps/
ssh root@192.168.56.105 "nohup sh /opt/apache-tomcat-8.5.43/bin/startup.sh &"

7、Jenkins工作台,点击Web项目,立即构建,控制台输出。


由上图可以看出,Maven项目构建成功,但是在执行远程拷贝脚本的时候出错,说明之前添加的免密登录没有生效。

8、给Jenkins用户添加免密登录。
(1)添加登录权限,vim /etc/passwd,修改jenkins用户权限

1
2
#jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/false
jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

(2)切换到jenkins用户,su jenkins

(3)生成密钥,ssh-keygen

(4)密钥添加到Web服务器

1
2
cd /var/lib/jenkins
ssh-copy-id -i .ssh/id_rsa.pub -p 22 root@192.168.56.105

(5)再次构建项目,执行成功!

8、测试服务
浏览器访问 http://192.168.56.105:8080/pandawork-start/ ,即可看到hello world。

后记

至此,Jenkins安装配置完成,使用Jenkins配置部署了一个Java Web项目。本文中用到了三台服务器,分别是GitLab服务器、Web服务器和Jenkins服务器。Jenkins从GitLab拉取项目代码,然后在workspace的项目目录中执行mvn install命令生成war包,最后拷贝war包到Web服务器的webapps目录中并启动tomcat。

书签

CentOS 安装 Jenkins

持续集成Jenkins+Gitlab

基于gitlab和jenkins的自动化部署实例

Jenkins常用插件之Deploy Plugin

Jenkins详细安装与构建部署使用教程

jenkins plugins

使用Jenkins进行持续集成

Jenkins详细安装与构建部署使用教程

0%