CentOS7安装部署Jenkins

文章目录
  1. 1. Jenkins简介
  2. 2. 环境准备
  3. 3. 安装Jenkins
  4. 4. 使用Jenkins
  5. 5. 构建JavaWeb项目
    1. 5.1. GitLab项目准备
    2. 5.2. Web服务器准备
    3. 5.3. Jenkins服务器配置
  6. 6. 后记
  7. 7. 书签

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详细安装与构建部署使用教程