jenkins 简单笔记

安装 jenins

启动jenkin

复制jenkins.wartomcatwebapps目录下

[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脚本

posted @ 2020-09-13 15:28  khlbat  阅读(247)  评论(0)    收藏  举报