ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jenkins+Gitlab实现持续集成持续部署

2022-09-14 18:30:52  阅读:212  来源: 互联网

标签:Gitlab 配置 安装 gitlab 持续 maven jenkins Jenkins root


一、GITLAB安装与使用

官网:https://about.gitlab.com/

1、GITLAB安装要求

(1)中文文档地址

https://docs.gitlab.cn/jh/install/requirements.html

(2)硬件要求
  • 4GB RAM 是必需的最小内存,支持多达 500 名用户
    8GB RAM 支持多达 1000 名用户
  • 4 核 是推荐的最小核数,支持多达 500 名用户
    8 核支持多达 1000 名用户

2、安装步骤

官方安装文档:https://gitlab.cn/install/?version=ce

(1)安装所需依赖
# 注:root用户下不必加sudo
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
(2)配置镜像
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
(3)开始安装
sudo EXTERNAL_URL="http://192.168.44.103" yum install -y gitlab-jh

注:除非您在安装过程中指定了自定义密码,否则将随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中(出于安全原因,24 小时后,此文件会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码)。使用此密码和用户名 root 登录。

(4)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                   # 查看日志;

二、Jenkins安装

1、 jenkins安装要求

(1)硬件要求
  • 内存>=256m
  • 磁盘>=1G(如果使用docker方式安装,磁盘空间应大于10G)
(2)java版本要求
  • Jenkins 2.357 及以后版本最低需要 Java 11,否则启动时会报错
  • Jenkins 2.357以前的版本可以使用jdk8

2、使用rpm方式安装

(1)获取安装包

​ 安装包下载地址:https://mirrors.jenkins-ci.org/redhat-stable/

(2)将下载的安装包上传到服务器上

(3)执行安装命令
# 执行安装命令
[root@jenkins software]# rpm -ivh jenkins-2.346.3-1.1.noarch.rpm 
# 查看安装完成后的目录
[root@jenkins software]# find / -iname jenkins

注:安装后目录说明

/usr/lib/jenkins/ #jenkins安装目录,WAR包会放在这里。
/etc/sysconfig/jenkins #jenkins配置文件
/var/lib/jenkins/ #默认的JENKINS_HOME。 
/var/log/jenkins/jenkins.log #日志文件
(4)配置Jenkins
# 打开配置文件
[root@jenkins init.d]# vim /etc/init.d/jenkins
# 配置JDK
/opt/module/jdk-11.0.15.1 # 此处配置为你本地jdk安装路径即可

(5)启动Jenkins
## 启动服务
systemctl start jenkins.service
  
## 停止服务
systemctl stop jenkins.service
  
## 重启服务
systemctl restart jenkins.service
  
## 服务自启动
systemctl enable jenkins.service
  
## 服务关闭自动启动
systemctl disable jenkins.service
  
## 检查服务状态
systemctl status jenkins.service
  
## 显示所有已启动的服务
systemctl list-units  --type=service

注:启动后访问可能会出现的问题

  1. 界面初始化的时间过长,则需要修改相关配置文件。

​ 原因:因为访问官网太慢。我们只需要换一个源,不使用官网的源即可

​ 现象:

解决方法:

1.1 找到jenkins工作目录,打开文件hudson.model.UpdateCenter.xml

# 查找文件
[root@jenkins ~] find / -name *.UpdateCenter.xml
/var/lib/jenkins/hudson.model.UpdateCenter.xml

1.2 编辑文件

[root@jenkins ~] vim /var/lib/jenkins/hudson.model.UpdateCenter.xml

# 将url标签里面的内容替换为下面的地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 
(6)基本配置
  1. 初次登陆,将提示路径下的密码粘贴到输入框中

[root@jenkins ~] cat /var/lib/jenkins/secrets/initialAdminPassword
9a8be481847c48eca696d2c1d91c81aa
  1. 插件安装

  1. 创建用户

  1. 实例配置

  1. 初始化配置结束,可以使用jenkins啦

(7)jenkins卸载
systemctl stop jenkins.service
# rpm卸载
rpm -e jenkins
# 检查是否卸载成功
rpm -qa | grep jenkins 
# 删除相关文件
rm -rf /etc/sysconfig/jenkins.rpmsave
rm -rf /var/cache/jenkins/
rm -rf /var/lib/jenkins/
rm -rf /var/log/jenkins
rm -rf /usr/lib/jenkins

# 查找是否还有残留文件 有就彻底删除残留文件
find / -iname jenkins | xargs -n 1000 rm -rf

三、Jenkins + Git + Maven 自动化部署配置

1、相关环境安装

(1)jenkins服务器上安装maven

​ 1. maven下载地址:https://maven.apache.org/download.cgi

  1. 将maven上传到jenkins所在服务器

​ 将上传到服务器的maven压缩包解压到指定目录下(本实例是解压到/opt/module下)

tar -zxvf apache-maven-3.8.5-bin.tar.gz -C /opt/module

  1. 配置maven阿里云镜像

修改/opt/module/apache-maven-3.8.5/conf/settings.xml

[root@jenkins conf] vim settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
<!--配置maven仓库地址 -->
  <localRepository>/data/maven/repository</localRepository>

  <pluginGroups>   
  </pluginGroups>

  <proxies>
  </proxies>

  <servers>
  </servers>

  <mirrors>
   <!-- 配置阿里云镜像地址 -->
   <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
   </mirror>
  </mirrors>

  <profiles>
  </profiles>
</settings>
  1. 配置maven环境变量

修改 vim /etc/profile.d/my_env.sh 文件(my_env.sh为自己创建文件,若不创建也可在/etc/profile中修改)

[root@jenkins conf] vim /etc/profile.d/my_env.sh

  1. 检查maven是否安装成功
[root@jenkins conf] mvn -version

(2)git安装
# yum方式安装git
[root@jenkins ~] yum install -y git
# 查看git版本
[root@jenkins ~] git --version

(3)jenkins中安装插件
  • Maven Integration plugin
  • Publish Over SSH
  • Localization: Chinese (Simplified)
  • Git

(4)全局配置工具

  1. 配置jdk

  1. 配置git

  2. maven配置

2、Jenkins配置自动构建自动部署

(1)创建jekins构建任务

任务创建完成后会跳转到任务配置页面

(2)任务配置
  1. 源码管理配置

  1. 配置构建触发器

  2. 配置构建环境

  3. 配置构建前置操作

运行之前清理脚本

#!/bin/bash
# 删除历史数据
rm -rf mybatisplus

appname=$1

# 获取传入的参数
echo "arg:$1"

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

echo $pid
# 如果pid为空,提示一下,否则执行kill命令
if [ -z $pid ];
# 使用 -z 做空值判断
	then 
		echo "$appname not started"
	else
		kill -9 $pid
		echo "$appname stoping ...."
check=`ps -ef | grep -w $pid | grep java`
if [ -z $check ];
	then 
		echo "$appname pid:$pid is stop"
	else 
		echo "$appname stop failed"
fi

fi
  1. 配置构建

  1. 配置构建后置操作

(3)执行任务

至此jenkins简单构建部署案例完成啦!

标签:Gitlab,配置,安装,gitlab,持续,maven,jenkins,Jenkins,root
来源: https://www.cnblogs.com/zichenglu/p/16694125.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有