Jenkins 相关二(重要)

jenkins官网 https://www.jenkins.io/download/

特殊报错

坑一:

问题描述:
在使用Jenkins打包的时候,抛出这样的错,但JDK和Maven都是已经安装,没问题了的。其中Jenkins用的Pipline流水线来部署项目。
问题解决:
在使用Pipline部署项目的时候,本地区编译代码是自动使用 /usr/bin/java 的软连接来编译的,需要查看以下此软连接是不是指向了JAVA_HOME中 bin 目录下的 java命令,如果不是,直接删除掉此软连接,并新建:ln -s /usr/local/jdk8/bin/java /usr/bin/java

解决方法:

ln -s /usr/local/jdk8/bin/java /usr/bin/java

坑二:报错

mvn clean install -pl starts-common -Dmaven.test.spik=true -Ptest -e
/var/lib/jenkins/workspace/starts_pipeline@tmp/durable-cb5301a6/script.sh: line 1: mvn: command not found

解决方法:

sudo ln -s /usr/local/apache-maven-3.6.3/bin/mvn /usr/local/bin/mvn
sudo ln -s /usr/local/apache-maven-3.6.3/bin/mvn /usr/bin/mvn

坑三:

INFO: Retrying request to {}->unix://localhost:80
Dec 04, 2021 6:00:30 AM org.apache.http.impl.execchain.RetryExec execute
INFO: I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied
Dec 04, 2021 6:00:30 AM org.apache.http.impl.execchain.RetryExec execute
INFO: Retrying request to {}->unix://localhost:80
[WARNING] An attempt failed, will retry 1 more times
org.apache.maven.plugin.MojoExecutionException: Could not build image
at com.spotify.plugin.dockerfile.BuildMojo.buildImage (BuildMojo.java:185)
at com.spotify.plugin.dockerfile.BuildMojo.execute (BuildMojo.java:105)
at com.spotify.plugin.dockerfile.AbstractDockerMojo.tryExecute (AbstractDocker

解决方法

chmod 777 /var/run/docker.sock

坑四:这是真坑,太坑了

jenkins pipeline 配置publish over ssh bash 插件,远程部署,无法执行shell脚本

最开始是这样的报错下面这个,后面百度说可以看日志 verbose 变为true

 sshPublisher(publishers: [sshPublisherDesc(configName: "master_service", transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "/opt/jenkins_shell/deploy.sh $harbor_url $harbor_project $service $tag $port ", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])

Jenkins 相关二(重要)_第1张图片
Jenkins 相关二(重要)_第2张图片

解决方法:

自己windos 上穿件的一个sh脚本,哭了…
1、重新在linux上创建脚本复制内容
2、改该shell脚本格式,方法如下:sed -i “s/\r//” deploy.sh。

坑五:jenkins:配置ssh 密钥时报错

这是一个坑 解决jenkins 秘钥存在但是新增的时候报错 说找不到秘钥
秘钥 首行:-----BEGIN OPENSSH PRIVATE KEY——
jenkins 版本在检验密钥时还不支持这种格式

解决方法:重新生成秘钥

ssh-keygen -m PEM -t rsa -b 4096

秘钥头部-----BEGIN RSA PRIVATE KEY-----

https://www.cnblogs.com/architectforest/p/13707244.html
https://www.bbsmax.com/A/n2d9qjnwdD/

坑六

jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [master_service]. Message [Auth fail]]

解决方法:

说明秘钥不对重新 复制,ssh-copy-id 机器IP

前言

一、Role-based Authorization Strategy 用户权限管理插件

下载插件 (感觉用的少)

Jenkins 相关二(重要)_第3张图片

开启全局策略,安装插件后才会有

Jenkins 相关二(重要)_第4张图片

角色管理

Jenkins 相关二(重要)_第5张图片

Jenkins 相关二(重要)_第6张图片

有3种角色类型,(Global roles、Item roles,多些)

Jenkins 相关二(重要)_第7张图片

用户管理

Jenkins 相关二(重要)_第8张图片

Jenkins 相关二(重要)_第9张图片

分配权限(填写的,不是选择用户)

Jenkins 相关二(重要)_第10张图片

二、凭证管理(用于管理 拉取gitLab 代码账号密码)

Credentials Binding Plugin 证书凭证管理 下载插件
Jenkins 相关二(重要)_第11张图片

Jenkins 相关二(重要)_第12张图片

三、构建一个自由风格的软件项目

Jenkins 相关二(重要)_第13张图片
Jenkins 相关二(重要)_第14张图片

#!/bin/bash
echo "编译构建开始!"
cd /var/lib/jenkins/workspace/auth/authentication
mvn clean install -Dmaven.test.spik=true -Ptest -e
echo "编译构建结束!"

四、构建一个maven项目

安装插件 Maven Integration plugin

clean install -Dmaven.test.skip=true -Ptest -e 失败有2种可能
一种是maven 仓库没有权限

chown -R jenkins:jenkins 仓库地址

二是jdk 和 maven的配置
Jenkins 相关二(重要)_第15张图片
Jenkins 相关二(重要)_第16张图片

Jenkins 相关二(重要)_第17张图片
Jenkins 相关二(重要)_第18张图片

五、maven 多模块构建(重要)

clean install -pl $service -Dmaven.test.spik=true -Ptest -e

Extended Choice Parameter 多选参数插件
Jenkins 相关二(重要)_第19张图片
Jenkins 相关二(重要)_第20张图片

Jenkins 相关二(重要)_第21张图片

六、流水线构建(重要)

涉及到语法
插件下载 Pipeline

Jenkins 相关二(重要)_第22张图片

gitLab 拉取代码

用工具生成代码片段
Jenkins 相关二(重要)_第23张图片
Jenkins 相关二(重要)_第24张图片
生成的代码赋值过去 。
Jenkins 相关二(重要)_第25张图片

编译打包 (sh + 命令)

Jenkins 相关二(重要)_第26张图片

Jenkins 相关二(重要)_第27张图片

本地管理 脚本

Jenkins 相关二(重要)_第28张图片
Jenkins 相关二(重要)_第29张图片
Jenkins 相关二(重要)_第30张图片

七、构建方案

点击后台(用的多)

身份验证令牌(用的少)

gitLab 钩子(用的一般)

需要安装插件
Gitlab Hook GitLab
Jenkins 相关二(重要)_第31张图片
Jenkins 相关二(重要)_第32张图片
参照 我的另一篇帖子

持续集成邮件

远程拉取镜像插件 Publish over SSH

SSH免密登录

Jenkins 相关二(重要)_第33张图片

cd /root/.ssh/

Harbor 密码pipeline语法

Jenkins 相关二(重要)_第34张图片

stage('编译构建代码/打包镜像、打标签、推送到镜像仓库') {
            steps {
                echo '编译构建代码---------------------------------->'
                sh "mvn clean install -pl ${service} -Dmaven.test.spik=true -Ptest -e dockerfile:build"
                //打标签
                echo '开始打标签---------------------------------->'
                sh "docker tag ${imagesName} ${harbor_url}/${harbor_project}/${imagesName}"


                withCredentials([usernamePassword(credentialsId: "${harbor_auth}", passwordVariable: 'password', usernameVariable: 'username')]) {
                    // some block
                  echo '登录镜像仓库---------------------------------->'
                  sh "docker login -u ${username} -p ${password} ${harbor_url}";
                  //推送到镜像仓库
                  echo '开始推送到镜像仓库---------------------------------->'
                  sh "docker push  ${harbor_url}/${harbor_project}/${imagesName}"

                  echo '镜像推送仓库成功---------------------------------->'
                }
            }
        }

插件拉取远程 Publish Over SSH

Jenkins 相关二(重要)_第35张图片

你可能感兴趣的:(linux安装软件,java,大数据,jenkins)