Jenkins

该文详细介绍了如何在Docker环境下安装GitLab,包括启动、停止及配置GitLab的命令。同时,文章提供了在CentOS系统中安装Jenkins、JDK、Maven和Git的步骤,并讲解了Jenkins的配置,如更新源和安装插件。此外,还讨论了构建Maven项目和使用Pipeline语法的过程。
摘要由CSDN通过智能技术生成

环境配置

gitlab 安装

gitlab ssh 下安装

https://gitlab.cn/install/?version=ce

gitlab 常用命令

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

https://

在 docker 下安装

安装Docker

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

  1. 更新 yum 源
yum update
  1. 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 添加镜像
# 国外镜像
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 阿里镜像
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 查看源中可使用的版本
yum list docker-ce --showduplicates | sort -r
  1. 安装 docker
yum install docker-ce docker-ce-20.10.9-3.el7
  1. 配置开机启动项
systemctl start docker
systemctl enable docker 
docker version

使用 docker 容器安装 gitlab

  1. 添加容器
    注:将 hostname 改为自己的 IP
sudo docker run --detach \
  --hostname 192.168.75.134 \
  --publish 443:443 --publish 80:80 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  registry.gitlab.cn/omnibus/gitlab-jh:latest
  1. 启动容器
docker start gitlab
  1. 查看已存在的容器
docker ps -a
  1. 进入容器
docker exec -it gitlab /bin/bash

访问
http://192.168.75.134
当首次运行出现 502 错误的时候排查两个原因

  1. 虚拟机内存至少需要 4g
  2. 稍等一会儿再刷新就好了

管理员账号
用户名:root
密码存在下面文件夹中,登录后需要改密码不然 24 小时之后会失效
注:下面的命令是在 docker gitlab 容器内运行的命令,要先执行第 4 步进入 gitlab 容器

cat /etc/gitlab/initial_root_password

Jenkins 安装

安装 jdk

https://jenkins.io/zh/download

yum install -y java-1.8.0-openjdk

启动 jenkins
contos7 要开放8080端口 或关闭防火墙

java -jar jenkins.war

开放 8080 端口

irewall-cmd --zone=public --add-port=8080/tcp --permanent
systemctl restart firewalld.service

安装 Maven

  1. 下载 apache-maven-3.x.x-bin.tar.gz
    https://maven.apache.org/download.cgi
  2. 解压 tar.gz 包
tar zxvf apache-maven-3.8.6-bin.tar.gz
  1. 移动解压后的 maven 包
tar zxvf apache-maven-3.8.6-bin.tar.gz
  1. 运行 maven
/usr/local/maven/bin/mvn

安装 git

配置 Jenkins

  1. 安装 maven 插件
    在这里插入图片描述在这里插入图片描述

更新 jenkins 源

第一步:

进入 Manage Jenkins -》 Manage Plugin -> Advanced 最下面有 Update Site,设置为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 或者http://mirror.xmission.com/jenkins/updates/update-center.json

第二步:修改服务器配置
进入 jenkins安装目录 下的/updates/default.json ,将其中的 updates.jenkins-ci.org/download 替换为 mirrors.tuna.tsinghua.edu.cn/jenkins,有些jenkins版本当中,是将updates.jenkins.io/download替换为 mirrors.tuna.tsinghua.edu.cn/jenkins
然后,把www.google.com 修改为 www.baidu.com

linux用户可用如下命令:

sed -i 's/updates.jenkins-ci.org/download/mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json
sed -i 's/www.google.com/www.baidu.com/g' default.json

第三步:重启Jenkins服务

重新登陆jenkins之后,进入插件管理中心,可以爽快的安装各种插件了。
在这里插入图片描述
在这里插入图片描述

构建 maven 项目

  1. 新建 maven 项目
    在这里插入图片描述
  2. 配置项目
    添加 git
    在这里插入图片描述
    配置 maven
    在这里插入图片描述
    在这里插入图片描述

jenkins 测试报告不显示演示

jenkins 管理 -> 脚本执行
System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)
jenkins 不能重启,如果重启效果就没有了。

当然也可以:groovy 插件,执行以上的 groovy 语句。不过需要本地 groovy 执行环境。

执行本地文件

添加 Groovy script

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

pipeline 语法

pipeline 最简单的结构

pipeline {
	agent any
	stages {
		stage('build') {
			steps {
				echo 'hello world'
			}
		}
	}
}
结构作用
pipeline代表整条流水线,包含整条流水线的逻辑
stages流水线中多个 stage 的容器。stages 部分至少包含一个 stage
stage代表流水线的阶段。每个阶段都必须有名称。本例中,build 就是此阶段的名称。
steps代表阶段中一个或多个具体步骤(step)的容器。steps 部分至少包含一个步骤,本例中,echo 就是一个步骤。在一个 stage 中有且只有一个 steps
agent指定具体在哪里执行
note: 以上每一个部分(section)都是必须的,少一个,Jenkins 都会报错。

post 部分

post {
	failure {
		mail to: 'team@email.com', subject: 'The Pieline failed'
	}
}

post 部分包含的是整个 pipeline 或阶段完成后一些附加的步骤。
post 部分是可选的,所以并不包含在 pipeline 最简结构中。但这并不代表它作用不大。
根据 pipeline 或阶段的完成状态,post 部分分成多种条件快,包括:

  • always:不论当前完成时什么,都执行。
  • changed:只要当前完成状态与上一次完成的状态不同就执行。
  • fixed:上一次完成为失败或不稳定(unstable),当前完成状态为成功时执行。
  • regression:上一次完成状态为成功,当前完成状态为失败、不稳定或终止(aborted)时执行。
  • aborted:当前执行结束时时中止状态时(一般为人为中止)执行。
  • failure:当前完成状态为失败时执行。
  • success:当前完成状态为成功时执行。
  • unstable:当前完成状态为不稳定时执行。
  • cleanup:清理条件块。不论当前完成状态是什么,在其他所有台哦见快执行完成后都执行。post 部分可以包含多种条件块。以下时 post 部分的完整示例。
pipeline {
	agent any
	stages {
		stage('build') {
			steps {
				echo "build stage"
			}
			post {
				always {
					echo "stage post always"
				}
			}
		}
	}
	post {
		changed {
			echo "pipeline post changed"
		}
		always {
			echo "pipeline post always"
		}
		success {
			echo "pipeline post success"
		}
		// 省略其它条件块
	}
}

pipeline 支持的指令

显然,基本结构满足不了现实多变的需求。所以,Jenkins pipeline 通过各种指令(directive)来丰富自己。指令可以理解为对 Jenkins pipeline 基本结构的补充。

Jenkins pipeline 支持的指令有:

  • environment:用于设置环境变量,可以定义在 stage 或 pipeline 部分。
  • tools:定义在 pipelien 或 sage 部分。它会自动下载并安装我们指定的工具,并将其加入 PATH 变量中。
  • input:定义在 stage 部分,会暂停 pipeline,提示你输入内容。
  • options:用于配置 Jenkins pipeline 本身的选项,比如 options {retry (3) } 指当 pipeline 失败时在重试 2 次。options 指令定义在 stage 部分或 pipeline 部分。
  • parallel:并行执行多个 step。在 pipeline 插件 1.2 版本后, parallel 开始支持对多个阶段进行并行执行。
  • parameters:与 input 不同,parameters 是执行 pipeline 前传入的一些参数。
  • triggers:用于定义执行 pipeline 的触发器。
  • when:当满足 when 定义的条件时,阶段才执行。

在使用指令时,需要注意的是每个指令都有自己的“作用域”。如果指令使用的位置不正确,Jenkins 将会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值