Jenkins 学习笔记

一、安装部署

  • 1、Jenkins 在开发过程中所属位置

  • 2、Jenkins + Maven + Git 持续集成基础使用

  • 3、安装硬件环境和知识储备

一、准备三台服务器

* Jenkins 主服务器  Jenkins 测试服务器 GitLab 代码托管服务器 

二、GitLab 安装

  • 1、GitLab 介绍及安装准备
  • 2、SSH 下安装
  • 3、 Docker 下安装

GitLab 常用命令

gitlab-ctl start                  # 启动所有 gitlab 组件;
gitlab-ctl stop                   # 停止所有 gitlab 组件;
gitlab-ctl restart                # 重启所有 gitlab 组件;
gitlab-ctl status                 # 查看服务状态;
gitlab-ctl reconfigure            # 启动服务;
vi /etc/gitlab/gitlab.rb          # 修改默认的配置文件;
gitlab-ctl tail                   # 查看日志;

1、SSH 安装

官方文档:GitLab最新版下载安装_GitLab中文免费版-极狐GitLab中文官方网站

2、Docker 安装

1、安装Docker:CentOS8 安装 Docker repo ‘appstream‘ 下载元数据失败_仍怀热爱的博客-CSDN博客

2、 安装GitLab 至少 6G 内存

docker run --detach \
  --hostname 192.168.1.8 \
  --publish 443:443 --publish 80:80 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab:Z \
  --volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
  --volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
  --shm-size 256m \
  registry.gitlab.cn/omnibus/gitlab-jh:latest

Jenkins 学习笔记_第1张图片

 3、进入 GitLab 容器

docker exec -it  gitlab /bin/bash

4、访问 GitLab 服务器地址 192.168.1.8

当首次运行出现502错误的时候排查两个原因

  1. 虚拟机内存至少需要4g
  2. 稍微再等等刷新一下可能就好了

5、管理员账号登录

用户名:root

密码存在下面文件中,登录后需要改密码不然24小时之后会失效

cat /etc/gitlab/initial_root_password

密码是 Password 后面的字符串

root@192:/# cat /etc/gitlab/initial_root_password 
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: JLDZaPOGsPVONhL7BBZ4mgrcO6GxJuHlfReZGldE4qQ=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

6、提交一份代码到GitLab

Jenkins 学习笔记_第2张图片

  三、Jenkins 安装

Jenkins 官方文档:Jenkins

 1、安装 Jenkins

docker pull jenkins/jenkins:latest

2、创建 Jenkins 目录

mkdir -p /root/docker/jenkins

3、安装启动 Jenkins

docker run -d \
  -u root \
  --name jenkins \
  -p 9302:8080 \
  -v /root/docker/jenkins:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkins/jenkins

Jenkins 学习笔记_第3张图片

4、查看 Jenkins 容器ID && 进入容器

docker ps
docker exec -u 0 -it 容器ID /bin/bash

5、查看 Jenkins 解锁密码

[root@localhost ~]#  cat /root/docker/jenkins/secrets/initialAdminPassword
5661515b79f24386a039659438c8c008

6、安装 Jenkins 插件 

Jenkins 学习笔记_第4张图片

 7、安装完成

Jenkins 学习笔记_第5张图片

二、安装jdk、maven、git

三、安装 jenkins 插件

Jenkins 学习笔记_第6张图片

Jenkins 学习笔记_第7张图片

Jenkins 学习笔记_第8张图片

 四、添加任务

Jenkins 学习笔记_第9张图片

 1、创建一个 jenkins 任务

Jenkins 学习笔记_第10张图片

2、配置仓库地址 

Jenkins 学习笔记_第11张图片

3、指定要拉取的分支Jenkins 学习笔记_第12张图片

4、配置Maven 







  
  ${user.home}/.m2/repository
  

  

  
  
    
    org.mortbay.jetty
  

  
  
    
  

  
  
    

    
    
        releases
        ali
        ali
      
      
        Snapshots
        ali
        ali
      
  

  
  
    
    
      
      nexus
      * 
      http://maven.aliyun.com/nexus/content/groups/public/
    
    
      
      nexus-public-snapshots
      public-snapshots 
      http://maven.aliyun.com/nexus/content/repositories/snapshots/
    
    
      
      nexus-public-snapshots1
      public-snapshots1 
      https://artifacts.alfresco.com/nexus/content/repositories/public/
    
  

  
    
    
      development
      
        
          central
          http://central
          truealways
          truealways
        
      
     
        
          central
          http://central
          truealways
          truealways
        
      
    
    
      
      public-snapshots
      
        
          public-snapshots
          http://public-snapshots
          false
          truealways
        
      
     
        
          public-snapshots
          http://public-snapshots
          false
          truealways
        
      
    
  

   
    development
    public-snapshots
   

  

Jenkins 学习笔记_第13张图片

 Jenkins 学习笔记_第14张图片

 Jenkins 学习笔记_第15张图片

我没有把maven挂载到 Jenkins 所以有报错 重新配置一遍 

docker stop 容器ID
docker run --name zyljenkins \
	-d -p 9302:8080 \
	-p 50000:50000 \
	-v /var/jenkins_home:/var/jenkins_home \
	-v /usr/local/maven:/usr/local/maven \
	-v /usr/local/allure-2.17.2:/usr/local/allure-2.17.2 \
	--env JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m" jenkins/jenkins

 5、重新配置之后再次启动

Jenkins 学习笔记_第16张图片6、点进去查看控制台日志 

Jenkins 学习笔记_第17张图片

 7、构建成功

 Jenkins 学习笔记_第18张图片

五、安装远程服务器插件 Publish Over SSH

1、安装插件 

Jenkins 学习笔记_第19张图片

2、配置远程服务器 

Jenkins 学习笔记_第20张图片

3、勾选密码

Jenkins 学习笔记_第21张图片

 4、测试连接Jenkins 学习笔记_第22张图片

5、我这里踩了一个坑把 remove 看成 remote 了 一直报错Jenkins 学习笔记_第23张图片

 6、测试

Jenkins 学习笔记_第24张图片

 7、去测试服务器看一下 jar 包 在不在

 四、配置测试服务器

一、配置测试服务器

1、安装JRE

yum install java-1.8.0-openjdk

2、查看 JRE 版本 验证是否安装成功

  

3、我们看到文件夹特别长

 4、在配置中修改 

Jenkins 学习笔记_第25张图片

5、把之前的目录 rm -rf 并且在 jenkins 重新执行 

Jenkins 学习笔记_第26张图片

6、配置最后执行语句

Jenkins 学习笔记_第27张图片

 7、重新执行

Jenkins 学习笔记_第28张图片

8、查看测试服务器 是否运行成功 

Jenkins 学习笔记_第29张图片

 二、超时机制

1、优化指令

Jenkins 学习笔记_第30张图片

2、再次优化 简化 

Jenkins 学习笔记_第31张图片

3、之前的配错了!!挪过来!!

Jenkins 学习笔记_第32张图片4、配置编译前执行命令

Jenkins 学习笔记_第33张图片

5、编写 shell 脚本

#!/bin/bash

# 删除历史数据
rm -rf zyl
#获取jar包pid
pid=`ps -ef | grep 8088 | grep 'java -jar' | awk '{printf $2}'`

echo $pid

kill -9 $pid

 6、优化 shell 脚本 将端口号传入

Jenkins 学习笔记_第34张图片

7、再次优化 shell 脚本

# 删除历史数据
rm -rf zyl

appprot=$1

#获取jar包pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`

echo $pid

# 如果 pid 为空 提示一下 否侧运行 kill
if [ -z $pid ];
# 如果是空的 -z 空值判断
        then
                echo "$appprot not started"
        else
                kill -9 $pid
                 echo "$appport stoping..."
fi

8、传值

Jenkins 学习笔记_第35张图片

 三、提交代码测试

一、提交前

1、查看网页输出的

Jenkins 学习笔记_第36张图片

 2、修改 IDE 代码并提交

Jenkins 学习笔记_第37张图片

 3、重新构建 jenkins item

Jenkins 学习笔记_第38张图片

二、提交后 

1、查看网页输出的

Jenkins 学习笔记_第39张图片

 三、自动构建( 不适用 )

1、修改 jenkins item 配置 

Jenkins 学习笔记_第40张图片

2、 添加令牌

Jenkins 学习笔记_第41张图片

3、生成 URL :http://192.168.1.12:9302/job/first/build?token=weilekaixin

4、如果对这个 URL 发起一次 GET 请求 则 jenkins 就会帮助我们构建一次项目
5、配置插件 如果不配 GitLab 则无权访问

Jenkins 学习笔记_第42张图片

Jenkins 学习笔记_第43张图片

 6、再次生成 URL : http://192.168.1.12:9302/buildByToken/build?job=first&token=weilekaixin

 7、配置GitLab

Jenkins 学习笔记_第44张图片

 Jenkins 学习笔记_第45张图片

 8、不支持本地请求

Jenkins 学习笔记_第46张图片

 9、切换管理员身份

Jenkins 学习笔记_第47张图片

10、选择网络 

Jenkins 学习笔记_第48张图片

 Jenkins 学习笔记_第49张图片

 11、退回项目 重新配置

Jenkins 学习笔记_第50张图片

 12、配置成功

 13、发送 Push 测试一下

Jenkins 学习笔记_第51张图片

14、测试成功 

Jenkins 学习笔记_第52张图片

15、提交代码测试一下 

一、提交前

1、看提交前接口返回

Jenkins 学习笔记_第53张图片 2、提交代码

Jenkins 学习笔记_第54张图片

二、提交后

1、jenkins 触发了事件

Jenkins 学习笔记_第55张图片

 2、我们跟踪一下 发现已经打包成功

Jenkins 学习笔记_第56张图片

 3、看提交后接口返回

Jenkins 学习笔记_第57张图片

你可能感兴趣的:(jenkins,学习,运维,1024程序员节)