jenkins 简单笔记
安装 jenins
启动jenkin
复制jenkins.war到tomcat的webapps目录下
[root@localhost webapps]# cp /opt/soft/jenkins.war .
[root@localhost webapps]# l
总用量 65M
drwxr-x---. 16 root root 4.0K 9月 12 07:59 docs/
drwxr-x---. 6 root root 83 9月 12 07:59 examples/
drwxr-x---. 5 root root 87 9月 12 07:59 host-manager/
-rw-r--r--. 1 root root 65M 9月 12 08:08 jenkins.war
drwxr-x---. 5 root root 103 9月 12 07:59 manager/
drwxr-x---. 3 root root 283 9月 12 07:59 ROOT/
[root@localhost webapps]#
启动tomcat
./startup.sh && tail -f ../logs/catalina.2020-09-12.log
访问8080端口

选择插件

选择无 安装

设置用户名和密码

完成安装

修改镜像地址为国内地址
修改配置文件
进入如下目录
[root@localhost updates]# pwd
/root/.jenkins/updates
[root@localhost updates]# l
总用量 2.0M
-rw-r-----. 1 root root 1.9M 9月 12 08:10 default.json
-rw-r-----. 1 root root 5.3K 9月 12 08:10 hudson.tasks.Maven.MavenInstaller
[root@localhost 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
更新配置
选择 manager jenkins

选择 manager plugins

选择 advanced

更新url并提交
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

重启tomcat生效
汉化
中文插件

用户权限管理
安装 Role-based Authorization Strategy 插件

重启后设置权限策略为 Role-Based Strategy

添加角色
进入授权管理页面

进入角色管理页面

添加角色权限如下

添加用户
进入用户管理页面

添加用户之后进入分配角色页面

分配角色如下

安装gitlab插件

安装凭据插件

进入凭据配置页面【有些版本首页没有凭据菜单,可以手动输入地址进入】

添加gitlab凭据

安装 publish over ssh 插件
安装 publish over ssh 插件

服务器配置ssh
客户端机器执行【如果修改了默认路径,则需要按照git多用户配置添加】
ssh-keygen -t rsa
服务器机器编辑 /etc/ssh/sshd_config如下
RSAAuthentication yes #启用rsa认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径
重启ssh服务
systemctl restart sshd
将客户端机器的sshkey公匙追加到.ssh/authorized_keys
jenkins配置ssh


maven 项目构建
添加maven项目类型插件

新建项目

源码管理选择git

post step
post step 添加脚本

配置如下

linux 脚本
run.sh
#!/bin/bash
source /etc/profile
/home/kmsimple/km-simple-boot/sbin/control.sh restart
control.sh
#!/bin/bash
source /etc/profile
# jdk
#export JAVA_HOME=/opt/jdk
#export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
#export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
APP_NAME=shop-boot.jar
#使用说明
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}
# 检查程序是否在运行
is_exist(){
pid=$(pgrep -f $APP_NAME)
# 如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
# 启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid}. "
else
nohup java -jar ../$APP_NAME > /dev/null 2>&1 &
echo "${APP_NAME} is running..."
fi
}
# 停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
echo "${APP_NAME} is stoped"
else
echo "${APP_NAME} is not running"
fi
}
# 输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is not running"
fi
}
# 重启
restart(){
stop
start
}
# 根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
pipeline
安装插件

安装sshpass
yum install -y epel-release
yum install -y sshpass
新建pipeline项目

pipeline 脚本
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'ssh://git@192.168.1.104:122/shop/boot/shop-boot.git']]])
}
}
stage('build') {
steps {
sh 'mvn clean package -Dmaven.test.skip=true'
}
}
stage('deploy') {
steps {
sh 'sshpass -p "shopboot" scp -r /root/.jenkins/workspace/shop-boot/target/shop-boot.jar shopboot@192.168.1.231:/home/shopboot/apps/shop-boot/shop-boot.jar'
sh 'sshpass -p "shopboot" ssh shopboot@192.168.1.231 "cd /home/shopboot/apps/shop-boot/sbin; ./control.sh restart"'
}
}
}
}
pipeline 脚本由git管理
配置 Gitlab

配置
脚本路径位于项目跟目录

git hook
取消 Enable authentication for '/project' end-point

jenkins 构建触发器配置


gitlab 配置

可以测试一下push

参数化话构建
添加参数

修改pipeline脚本

khlbat

浙公网安备 33010602011771号