从零开始,使用Jenkins构建发布Pipeline流水线项目

文章目录

  • 一、环境安装部署
    • 1. 安装JDK
    • 2. 配置环境变量
    • 3. 安装并且激活IDEA
    • 4. 构建web项目
    • 5. 安装 tomcat 服务器
    • 6. 安装 git,开启版本控制
    • 7. Gitlab 仓库搭建
    • 8. 添加组、创建用户、创建项目
    • 9. 测试源码上传到 Gitlab 仓库
  • 二、Jenkins 安装
    • 1. 修改插件地址
    • 2. 安装项目所需插件
    • 3. 添加凭证
  • 三、安装配置 Maven
    • 1. Jenkins服务器安装maven
    • 2. 配置JDK和Maven
    • 3. 添加 Jenkins 全局变量
    • 4. 修改 Maven 的配置文件
    • 5. 测试Maven是否配置成功
  • 四、安装配置 Tomcat
    • 1. 安装
    • 2. 配置Tomcat用户角色权限
    • 3. 重启Tomcat,访问测试
  • 五、构建 Pipeline 流水线项目
    • 1. 创建流水线项目
    • 2. Pipeline Script from SCM


一、环境安装部署

1. 安装JDK

从零开始,使用Jenkins构建发布Pipeline流水线项目_第1张图片

2. 配置环境变量

C:\Program Files\Java\jdk1.8.0_152\bin

从零开始,使用Jenkins构建发布Pipeline流水线项目_第2张图片

3. 安装并且激活IDEA

在这里插入图片描述
从零开始,使用Jenkins构建发布Pipeline流水线项目_第3张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第4张图片

-javaagent:D:\IntelliJ IDEA\IntelliJ IDEA 2019.3.1\bin\jetbrains-agent.jar

4. 构建web项目

从零开始,使用Jenkins构建发布Pipeline流水线项目_第5张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第6张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第7张图片

选择当前的web项目

从零开始,使用Jenkins构建发布Pipeline流水线项目_第8张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第9张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第10张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第11张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第12张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第13张图片

5. 安装 tomcat 服务器

在这里插入图片描述
从零开始,使用Jenkins构建发布Pipeline流水线项目_第14张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第15张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第16张图片

配置IDEA,使其能够识别tomcat

从零开始,使用Jenkins构建发布Pipeline流水线项目_第17张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第18张图片

6. 安装 git,开启版本控制

在这里插入图片描述
从零开始,使用Jenkins构建发布Pipeline流水线项目_第19张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第20张图片

7. Gitlab 仓库搭建

hostnamectl set-hostname gitlab && su

#安装依赖包
yum install -y policycoreutils openssh-server openssh-clients.x86_64 postfix

#启动ssh服务并且设置开机启动
systemctl start sshd && systemctl enable sshd

#设置postfix开机自启,并启动
systemctl start postfix && systemctl enable postfix

rpm -ivh gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm

修改 gitlab 访问地址和端口,默认为80,我们改为82

vim /etc/gitlab/gitlab.rb

23 external_url 'http://192.168.8.20:82'			 	#访问地址设为本机IP地址
 1112 nginx['listen_port'] = 82						 	#监听端口改为82,前面的注释需要取消掉


gitlab-ctl reconfigure
gitlab-ctl restart

http://192.168.8.20:82 访问Gitlab

修改管理员root密码,修改密码后,登录即可

从零开始,使用Jenkins构建发布Pipeline流水线项目_第21张图片

8. 添加组、创建用户、创建项目

从零开始,使用Jenkins构建发布Pipeline流水线项目_第22张图片

创建用户
从零开始,使用Jenkins构建发布Pipeline流水线项目_第23张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第24张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第25张图片

将用户添加到组中

从零开始,使用Jenkins构建发布Pipeline流水线项目_第26张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第27张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第28张图片

以刚才创建的zhangsan用户登录 ,然后在用户组中创建新的项目

从零开始,使用Jenkins构建发布Pipeline流水线项目_第29张图片

9. 测试源码上传到 Gitlab 仓库

从零开始,使用Jenkins构建发布Pipeline流水线项目_第30张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第31张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第32张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第33张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第34张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第35张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第36张图片

二、Jenkins 安装

Jenkins需要依赖JDK,所以先安装JDK1.8 ,安装目录为:/usr/lib/jvm

hostnamectl set-hostname jenkins && su
yum install java-1.8.0-openjdk* -y
rpm -ivh jenkins-2.277.4-1.1.noarch.rpm
 
vim /etc/sysconfig/jenkins

29 JENKINS_USER="root"
56 JENKINS_PORT="8888"

systemctl start jenkins 

打开浏览器访问 http://192.168.8.19:8888

#获取Jenkins的密码
cat /var/lib/jenkins/secrets/initialAdminPassword

从零开始,使用Jenkins构建发布Pipeline流水线项目_第37张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第38张图片

1. 修改插件地址

cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkins- ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

从零开始,使用Jenkins构建发布Pipeline流水线项目_第39张图片

2. 安装项目所需插件

安装完以后需重启Jenkins

Chinese													  	#翻译
Role-based Authorization Strategy						    #管理Jenkins用户权限
Credentials Binding										   	#凭证插件
Git														 	#使用Git工具到Gitlab拉取项目源码
Deploy to container										  	#把项目部署到远程的Tomcat里面
Maven Integration										  	#构建Maven项目
Pipeline													#创建Pipeline项目
webhook
Gitlab
Email Extension Template									#邮件扩展
SonarQube Scanner											#代码审查

3. 添加凭证

在 Jenkins 服务器上安装 Git工具

yum install git -y  
git --version 

在这里插入图片描述

  • Username with password

从零开始,使用Jenkins构建发布Pipeline流水线项目_第40张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第41张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第42张图片

  • SSH密钥类型

使用 root 用户生成公钥和私钥,在 /root/.ssh/目录保存了公钥和私钥

ssh-keygen -t rsa

从零开始,使用Jenkins构建发布Pipeline流水线项目_第43张图片

把生成的公钥放在 Gitlab 中

从零开始,使用Jenkins构建发布Pipeline流水线项目_第44张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第45张图片

在 Jenkins 中添加凭证,配置私钥
从零开始,使用Jenkins构建发布Pipeline流水线项目_第46张图片

  • 创建一个项目,测试凭证是否可用

从零开始,使用Jenkins构建发布Pipeline流水线项目_第47张图片
使用密钥对的形式构成成功
从零开始,使用Jenkins构建发布Pipeline流水线项目_第48张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第49张图片

三、安装配置 Maven

1. Jenkins服务器安装maven

tar zxvf apache-maven-3.6.2-bin.tar.gz
mkdir -p /opt/maven
mv apache-maven-3.6.2/* /opt/maven

vim /etc/profile										#配置环境变量,末尾添加

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export MAVEN_HOME=/opt/maven
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

source /etc/profile

从零开始,使用Jenkins构建发布Pipeline流水线项目_第50张图片

在这里插入图片描述

2. 配置JDK和Maven

从零开始,使用Jenkins构建发布Pipeline流水线项目_第51张图片

JDK1.8
/usr/lib/jvm/java-1.8.0-openjdk

从零开始,使用Jenkins构建发布Pipeline流水线项目_第52张图片

maven3.6.2
/opt/maven

从零开始,使用Jenkins构建发布Pipeline流水线项目_第53张图片

3. 添加 Jenkins 全局变量

从零开始,使用Jenkins构建发布Pipeline流水线项目_第54张图片

JAVA_HOME         	/usr/lib/jvm/java-1.8.0-openjdk
M2_HOME           	/opt/maven
PATH+EXTRA      	$M2_HOME/bin

从零开始,使用Jenkins构建发布Pipeline流水线项目_第55张图片

4. 修改 Maven 的配置文件

  • 把配置文件中的本地仓库改为:/root/repo/
mkdir /root/repo 							
vim /opt/maven/conf/settings.xml

 54   <localRepository>/root/repo</localRepository>			

从零开始,使用Jenkins构建发布Pipeline流水线项目_第56张图片

  • 添加阿里云私服地址
<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/
      <mirrorOf>central</mirrorOf>        
    </mirror>

从零开始,使用Jenkins构建发布Pipeline流水线项目_第57张图片

5. 测试Maven是否配置成功

从零开始,使用Jenkins构建发布Pipeline流水线项目_第58张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第59张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第60张图片

可以看到项目打成 war 包了,代表 maven 环境配置成功

四、安装配置 Tomcat

1. 安装

yum install java-1.8.0-openjdk* -y 						
tar -xzf apache-tomcat-8.5.47.tar.gz 				
mkdir -p /opt/tomcat 									
mv /root/apache-tomcat-8.5.47/* /opt/tomcat 		
/opt/tomcat/bin/startup.sh 							

2. 配置Tomcat用户角色权限

vim /opt/tomcat/conf/tomcat-users.xml

<role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-script"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-status"/>
  <role rolename="admin-gui"/>
  <role rolename="admin-script"/>
  <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>

从零开始,使用Jenkins构建发布Pipeline流水线项目_第61张图片

为了能够刚才配置的用户登录到 Tomcat,还需要修改以下配置,默认不许允许远程访问,现在需要注释掉

#开启远程访问
vim /opt/tomcat/webapps/manager/META-INF/context.xml

<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->

从零开始,使用Jenkins构建发布Pipeline流水线项目_第62张图片

3. 重启Tomcat,访问测试

/opt/tomcat/bin/shutdown.sh 
/opt/tomcat/bin/startup.sh 

从零开始,使用Jenkins构建发布Pipeline流水线项目_第63张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第64张图片

五、构建 Pipeline 流水线项目

Jenkins中自动构建项目的类型有很多,常用的有:
自由风格软件项目(FreeStyle Project)

Maven项目(Maven Project)

流水线项目(Pipeline Project)

Groovy Pipeline 支持两种语法:
Declarative(声明式)

Scripted Pipeline(脚本式)

Pipeline 也有两种创建方法:
直接在 Jenkins 的 Web UI 界面中输入脚本

通过创建一个 Jenkinsfile 脚本文件放入项目源码库中

一般推荐在 Jenkins 中直接从源代码控制(SCM) 中直接载入 Jenkinsfile Pipeline 这种方法

1. 创建流水线项目

从零开始,使用Jenkins构建发布Pipeline流水线项目_第65张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第66张图片

pipeline {
    agent any

    stages {
        stage('pull code') {
            steps {
                echo 'Hello World'
            }
        }
    stage('build project') {
            steps {
                echo 'Hello World'
            }
        }
    stage('deploy item') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

生成拉取代码
从零开始,使用Jenkins构建发布Pipeline流水线项目_第67张图片
在这里插入图片描述

从零开始,使用Jenkins构建发布Pipeline流水线项目_第68张图片

生成编译构建的代码

从零开始,使用Jenkins构建发布Pipeline流水线项目_第69张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第70张图片

生成部署代码(添加tomcat的凭证)

从零开始,使用Jenkins构建发布Pipeline流水线项目_第71张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第72张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第73张图片

从零开始,使用Jenkins构建发布Pipeline流水线项目_第74张图片

构建成功
从零开始,使用Jenkins构建发布Pipeline流水线项目_第75张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第76张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第77张图片

2. Pipeline Script from SCM

由于在Jenkins的UI界面编写Pipeline代码不方便脚本维护,并且脚本容易丢失,所以可以把Pipeline脚本放在项目中(一起进行版本控制)

在项目根目录建立Jenkinsfile文件,把脚本内容复制到该文件中

这里要注意的是观察代码是否变颜色,有概率不识别,导致构建失败~

从零开始,使用Jenkins构建发布Pipeline流水线项目_第78张图片

然后对Jenkinsfile文件进行提交代码

从零开始,使用Jenkins构建发布Pipeline流水线项目_第79张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第80张图片

到Gitlab仓库上查看是否提交成功

从零开始,使用Jenkins构建发布Pipeline流水线项目_第81张图片

重新配置web_demo_pipeline项目

从零开始,使用Jenkins构建发布Pipeline流水线项目_第82张图片
从零开始,使用Jenkins构建发布Pipeline流水线项目_第83张图片

对IDEA上代码进行更改并重新提交
从零开始,使用Jenkins构建发布Pipeline流水线项目_第84张图片

构建完成
从零开始,使用Jenkins构建发布Pipeline流水线项目_第85张图片

访问 Tomcat 查看发布结果,下面是前后对比

从零开始,使用Jenkins构建发布Pipeline流水线项目_第86张图片从零开始,使用Jenkins构建发布Pipeline流水线项目_第87张图片

你可能感兴趣的:(Devops,jenkins,运维,java,maven)