携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情
之前自己做的项目中使用jenkins维护,记录一下jenkins的安装部署配置过程
- jenkins管理员密码
admin/xxx
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
518c23c8de6445cdb70d1e6e19bc42eb
24731154a27a48aeb40a9a05b2f605d4
This may also be found at: /opt/jenkinsHome/secrets/initialAdminPassword
----------------------------------------------------------------------
Jenkins修改默认目录 /root/.jenkins
1、打开tomcat的bin目录,编辑catalina.sh文件。
在# OS specific support. $var must be set to either true or false.上面添加:export JENKINS_HOME=”/opt/jenkinsHome”
在引号中填入你的路径。
2、修改profile文件
编辑profile文件:$ vim /etc/profile
export JENKINS_HOME=/opt/jenkinsHome
保存,退出后执行:$ source /etc/profile
- jenkins安装启动
将相应jenkins.war放入tomcat的webapp目录下启动项目即可
- 部署jenkins服务器出现Please wait while Jenkins is getting ready to work ...一直进不去该怎么办?
jenkins的镜像地址问题
站点信息从:https://updates.jenkins.io/update-center.json 改为如下地址【三选一即可】
1 http://mirror.xmission.com/jenkins/updates/update-center.json # 推荐
2 http://mirrors.shu.edu.cn/jenkins/updates/current/update-center.json
3 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- jenkins插件安装
安装Jenkins后首次访问时由于其他原因会产生离线问题。安装出错的插件需要进入Jenkins后再重新安装这些插件。
- 建议安装的插件 关于插件建议安装以下插件方便后期配置与部署
- Maven Integration maven构建项目插件 ,用于构建Maven 2/3作业。有关更多信息,请参见Jenkins Wiki上的Maven项目插件;
- Git git插件为Jenkins项目提供了基本的git操作。它可以轮询,获取,签出,分支,列出,合并,标记和推送存储库。
- Git client git客户端插件为Jenkins插件提供了git应用程序编程接口(API)。它可以获取,签出,分支,列出,合并和标记存储库。有关特定的API详细信息,请参阅API文档;
- Publish Over SSH 也是一款scp插件具体功能查看官方文档;
- SSH 该插件来自非常酷的SCP插件。您可以使用SSH插件通过ssh在远程计算机上运行shell命令;
- FTP publisher 该插件可用于将项目工件和整个目录上载到ftp服务器。具体功能查看官方文档;
- NodeJS Plugin 为NodeJS和npm软件包提供Jenkins集成。具体功能查看官方文档
==注意:如果有下载失败,请多下载几次即可。==
- Jenkins配置
(点击
manage Jenkins管理Jenkins 进入管理页面,再点击Global Tool Configuration全局工具配置)-
jdk配置
-
git配置
-
maven配置
-
nodeJs配置
-
- 全局配置中ssh配置
- 配置ssh远程发布配置。因为Jenkins的安装服务器和服务运行的服务器可能不是在同一服务器这时候就需要使用scp传输文件,前文提到的Publish Over SSH插件就是文件传输。通过ssh将工作空间的文件传输到相关目录;
- Publish Over SSH 提供2种方式连接一个是秘钥还有个事账号密码;
- 如下图提供装密码方式配置仅供参考,配置完成后点击 Test Configuration 进行连接测试 出现 Success 字样表示连接成功。
- 创建job
- 创建一个job,用来执行自动化构建任务,使你的项目能够一键部署到服务器。
- General(General是构建任务的一些基本配置。名称,描述之类的)
- 项目名称: 是刚才创建构建任务步骤设置的,当然在这里也可以更改。
- 描述: 对构建任务的描述。
- 丢弃旧的构建(Discard old builds): 服务器资源是有限的,有时候保存了太多的历史构建,会导致Jenkins速度变慢,并且服务器硬盘资源也 会被占满。当然下方的"保持构建天数" 和 保持构建的最大个数是可以自定义的,需要根据实际情况确定一个合理的值。其他几个选项在这里不做介绍,有兴趣的可以查看Jenkins"帮助信息", 会有一个大概的介绍。不过这些"帮助信息"都是英文的。
- 参数配置:在General中还可以配置构建参数如分支参数和构建完成后不杀死进程参数。
- 源码管理就是配置你代码的存放位置。
- Git: 支持主流的github 和gitlab代码仓库。因我们的研发团队使用的是gitlab,所以下面我只会对该项进行介绍。
- Repository URL:仓库地址
- Credentials:凭证。可以使用HTTP方式的用户名密码,也可以是RSA文件。 但要通过后面的"ADD"按钮添加凭证。
- Branches to build:构建的分支。*/master表示master分支,也可以设置为其他分支,下图用的是前面设置的分支参数。
- 源码浏览器:你所使用的代码仓库管理工具,如github, gitlab.
- URL:填入上方的仓库地址即可。
- Subversion:就是SVN,这里不作介绍。
- 构建触发器
- 构建触发器,顾名思义,就是构建任务的触发器。
- Build whenever a SNAPSHOT dependency is built:可以设置当某些上游没有成功构建时调度构建
- 触发远程构建(例如,使用脚本): 该选项会提供一个接口,可以用来在代码层面触发构建。这里不做介绍。
- Build after other projects are built: 该选项意思是"在其他projects构建后构建"。
- Build periodically: 周期性的构建。很好理解,就是每隔一段时间进行构建。日程表类似linux crontab书写格式。如下图的设置,表示每天的12点和23点进行一次构建。
- Poll SCM:该选项是配合上面这个选项使用的。当代码仓库发生改动,jenkins并不知道。需要配置这个选项,周期性的去检查代码仓库是否发生改动
- 构建环境
- 构建环境就是构建之前的一些准备工作,如指定构建工具。下图中是Send files or execute commands over SSH before the build starts运行构建后将文件传输到相关服务器执行shell命令,其他选项不作介绍,同样可以查看"帮助信息" 获得使用帮助。
执行脚本
#五天之前的文件夹
time=$(date -d"5 day ago" +"%Y%m%d")
#删除五天之前的文件夹
rm -rf /nene/apps_back/"$time"
#20200623
newDay=$(date +"%Y%m%d")
#20200623_11_48_41
now=$(date +"%Y-%m-%d-%H:%M:%S")
#创建备份目录
mkdir -p /nene/apps_back/"$newDay"
#将jar包备份
mv /nene/apps/easy-springboot.jar /nene/apps_back/"$newDay"/easy-springboot-"$now".jar
#将jar包复制至项目目录
cp /opt/jenkinsHome/workspace/ez-boot/target/easy-springboot.jar /nene/apps/easy-springboot.jar
#启动项目
source /etc/profile
cd /nene/apps
sh ez.sh restart ez-boot
- 构建
- 因为创建是一个maven的item,所以选择根pom ,填入打包命令。
- Post Steps : 有构建成功时;构建失败时;无论构建如何都是执行。
- 问题
- jenkins远程执行shell脚本启动jar包
centos7的原因要加上source /etc/profile,使其在当前远程链接有效