如何详细图文教程安装并使用Jenkins?

摘要:前言 最近公司需要弄一套自动化运维部署,于是抽空学习了一下,用了两天左右完成Jenkins的安装部署和各种项目的配置化,于是整理一下进行分享。 介绍 Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续
前言 最近公司需要弄一套自动化运维部署,于是抽空学习了一下,用了两天左右完成Jenkins的安装部署和各种项目的配置化,于是整理一下进行分享。 介绍 Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。 Jenkins特点: 开源免费; 跨平台,支持所有的平台; master/slave支持分布式的build; web形式的可视化的管理页面; 安装配置超级简单; tips及时快速的帮助; 已有的200多个插件 官网: https://www.jenkins.io/ 安装教程 这里我们使用的是离线包方式安装。 官网镜像地址: https://mirrors.jenkins.io/ 下载地址: https://jenkins.io/download/ 华为镜像地址: https://mirrors.huaweicloud.com/home 百度网盘地址:链接:https://pan.baidu.com/s/10FNG5p-upLgNlCUUrdUIMA 提取码:r9x6 直接下载war包,并安装好jdk之后,输入:nohup java -jar jenkins.war --httpPort=8888 & 进行启动,然后网页浏览器输入 ip:8888打开设置好账号密码之后登录即可,插件安装推荐使用官方推荐。 依赖环境安装 因为需要对一些项目进行打包,因此需要安装这些环境的依赖,这里我们就安装dk、git、maven(java项目),nodejs(前端项目)即可。 jdk安装 说明: 一般CentOS自带了openjdk,但是我们这里使用的是oracle的JDK。所以要写卸载openjdk,然后再安装在oracle下载好的JDK。如果已经卸载,可以跳过此步骤。 首先输入 java -version 查看是否安装了JDK,如果安装了,但版本不适合的话,就卸载 输入 rpm -qa | grep java 查看信息 然后输入: rpm -e --nodeps “你要卸载JDK的信息” 如: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64 确认没有了之后,解压下载下来的JDK tar -xvf jdk-8u144-linux-x64.tar.gz 移动到opt/java文件夹中,没有就新建,然后将文件夹重命名为jdk1.8。 mv jdk1.8.0_144 /opt/java mv jdk1.8.0_144 jdk1.8 然后编辑 profile 文件,添加如下配置 输入: vim /etc/profile 添加: export JAVA_HOME=/opt/java/jdk1.8 export JRE_HOME=/opt/java/jdk1.8/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export PATH=.:${JAVA_HOME}/bin:$PATH 添加成功之后,输入 source /etc/profile java -version 查看是否配置成功 maven安装 将maven进行解压,上传到服务器的/opt目录下,然后在conf目录下修改setting配置, setting配置如下 <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <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> <!-- 设置maven默认jdk --> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profiles> </settings> 添加maven的环境,编辑/etc/profile文件,添加如下配置: export MAVEN_HOME=/opt/apache-maven-3.5.0 export PATH=.:${JAVA_HOME}/bin:$MAVEN_HOME/bin:$PATH 添加成功之后,输入 source /etc/profile mvn -v 查看是否配置成功 git 下载地址: https://git-scm.com/downloads centos7默认安装了git服务,如果gitlab(项目源码)服务地址和Jenkins不在统一服务器上,则需要配置ssh key。 命令如下: git config --global user.name "xx" git config --global user.email "x@x.com" ssh-keygen -t rsa -C "x@x.com" clip < ~/.ssh/id_rsa.pub 然后在gitlab的账号中添加即可。 nodejs node下载地址: http://nodejs.cn/download/current/ https://nodejs.org/dist/ 下载离线包,进行解压,然后重命名为nodejs,进行移到到/usr/local中,最后创建软链 创建软链: tar -zxvf node-v11.15.0-linux-x64.tar.gz mv node-v11.15.0-linux-arm64/ nodejs mv nodejs/* /usr/local/nodejs ln -s /usr/local/nodejs/bin/node /usr/local/bin ln -s /usr/local/nodejs/bin/npm /usr/local/bin npm install -g yarn ln -s /usr/local/nodejs/bin/yarn /usr/local/bin Jenkins使用 简易流程图 插件安装 Jenkins管理->插件管理,进行下载添加。 注:插件安装之后需要Jenkins重启,勾选插件下载之后可以手工勾选 Maven Integration Git Parameter Plug-In 可以在构建时进行分支选择 Publish over SSH ssh远程服务插件,必装。 ThinBackup Jenkins备份配置服务的插件 服务配置 环境配置 关于依赖环境的服务配置,必做,最好先安装上面的插件。 依赖环境 主要是上面安装的环境的路径填写。 发布服务配置 ssh远程服务配置 Jenkins管理->系统配置 构建项目 项目构建有很多种选择,这里我们就用java项目(依赖maven)和前端项目(依赖nodejs)来做示例。 首先回到主界面,点击新建项目。 java项目构建 这里我们是创建java项目,因此我们选择maven方式构建。 这里构建的项目可以使用我之前写的springboot项目,https://github.com/xuwujing/springBoot-study/tree/master/springboot-package 创建完成之后,我们根据图片来进行填写,下面是设置了在编译时进行参数配置,可以手动选择分支,可以不进行配置。 这里需要配置git项目地址和制定分支 编译前的操作,无特殊要求,可以不操作 打包操作,可以使用默认值 配置的远程服务地址 配置完毕之后,点击保存即可。 进行构建 构建成功之后,在远程服务的设置好的路径可以查看服务已更新并且已经启动成功! 前端项目构建 这里我们是创建前端项目,我们可以选择freestyle方式进行构建。 这里的配置基本同上 这里的构建选择执行shell命令: 进行远程传输 进行构建 额外操作 自定义工作空间 将git的项目下载到指定目录,并进行操作 在general中点击高级->勾选自定义空间 依赖关系 在打包的时候,会遇到依赖关系,比如打包A项目,需要B项目先进行打包,但是又不想每次点击两次,因此就可以用Jenkins的上下级关系打包,A项目依赖B项目,那么打包B项目之后自动打包A项目即可。 运行分支选择 在项目的配置中勾选如下参数 配置文件备份 需要全局配置的插件 ThinBackup 点击backup now 即可进行备份 异常处理 这里是我在进行配置的时候遇到的一些错误,整理如下 1. returned status code 128 原因:鉴权问题,ssh key的鉴权; 解决办法:ssh key的配置,若是配置好了,可在Jenkins服务器手动 git clone一下在进行设置。 2. 配置密钥时报错的解决:Failed to add SSH key. Message invalid privatekey(Jenkins 2.257) 原因: 秘钥过长,Jenkins不支持 解决办法: 重新生成短秘钥, ssh-keygen -m PEM -t rsa -b 4096 -m 参数指定密钥的格式,PEM是rsa之前使用的旧格式 -b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。 3. Npm install 报错 Failed at the node-sass@4.14.1 postinstall script. npm ERR! This is probably not a problem with npm. 参考: https://blog.csdn.net/weixin_41940690/article/details/106977906 https://zhuanlan.zhihu.com/p/250812475 解决办法: npm i --unsafe-perm=true 4. Npm 执行权限问题 参考: https://blog.csdn.net/qq_40202111/article/details/105972546 https://www.jianshu.com/p/ab1c92a61809 https://segmentfault.com/q/1010000019989912 https://blog.csdn.net/wangooo/article/details/108443291 实际并未解决问题, 最终办法: npm install && chmod -R 777 node_modules/ && npm run build 5. @vitejs/plugin-vue requires vue (>=3.2.13) or @vue/compiler-sfc to be present in the dependency tree 参考: https://blog.csdn.net/bey_bey_bey/article/details/120744400 原因: package.json缺失配置, "vue-loader": "^14.2.4", 解决办法: 添加成功即可. 如果还是不行,使用 npm install @vue/compiler-sfc 6. error icss-utils@5.1.0: The engine “node“ is incompatible with this module 参考: https://blog.csdn.net/weixin_40013817/article/details/115194426 执行如下命令 yarn config set ignore-engines true 其他 音乐推荐 原创不易,如果感觉不错,希望给个推荐!您的支持是我写作的最大动力! 版权声明: 作者:虚无境 博客园出处:http://www.cnblogs.com/xuwujing CSDN出处:http://blog.csdn.net/qazwsxpcm     个人博客出处:http://www.panchengming.com