宁武皇仁光九年锦文轩刻本《异闻录》载: 扶桑画师浅溪,居泰安,喜绘鲤。院前一方荷塘,锦鲤游曳,溪常与嬉戏。 其时正武德之乱,潘镇割据,战事频仍,魑魅魍魉,肆逆于道。兵戈逼泰安,街邻皆逃亡,独溪不舍锦鲤,未去。 是夜,院室倏火。有人入火护溪,言其本鲤中妖,欲取溪命,却生情愫,遂不忍为之。翌日天明,火势渐歇,人已不见。 溪始觉如梦,奔塘边,但见池水干涸,莲叶皆枯,塘中鲤亦不知所踪。 自始至终,未辨眉目,只记襟上层迭莲华,其色魅惑,似血着泪。 后有青岩居士闻之,叹曰:魑祟动情,必作灰飞。犹蛾之投火耳,非愚,乃命数也。 ————《锦鲤抄》

【Jenkins简单配置自动化部署发版流程】

Jenkins学习 --0815

 

背景

操作文档:https://www.jenkins.io/zh/doc/

此处使用war包方式安装 ,jdk版本 8, Jenkins v2.346.3(注意:2.357版本后开始需要依赖jdk11了

个人:因为环境网络限制,每次都要手动上传jar包到dev环境部署,有时网速会影响测试效率,所以想要了解 jenkins自动化部署

 

安装所需前置环境

需要配置java环境,此略

下载安装

## 创建自己的jenkins目录
mkdir
-p /alice/jenkins cd /alice/jenkins ## 关于安装: ## 方式一:这个应该是默认下载当前最新的稳定版 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 中间可能会提示你安装java环境,如果依旧安装了就跳过吧,不要用jenkins自带的jdk
yum install jenkins ## 方式二:下载指定版本可以去官网下载(推荐) https://get.jenkins.io/war-stable/

 

启动与停止

## 找不到war包位置可以用find 检索下
[root@iZbp1hwh629hd4xz80i1z0Z /]# find / -iname jenkins.war
/usr/share/java/jenkins.war
/usr/lib/jenkins/jenkins.war
/zoe/jenkins/jenkins.war
​# 启动
nohup java -jar jenkins.war --httpPort=8800 > nohup.out 2>&1 &

 

war运行后发现有个提示:

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
xxxxxxxxxxxxxxxx
## 这个是admin密码,先保存一下,等下要浏览器验证时输入

输入 ip+ port 访问图形界面。

关于停止卸载

## 停止服务
systemctl stop jenkins
## 移除jenkins
rm -rf /etc/sysconfig/jenkins.rpmsave
rm -rf /var/cache/jenkins/
rm -rf /var/lib/jenkins/
rm -rf /var/log/jenkins
rm -rf /usr/lib/jenkins
rm -rf /usr/share/java/

可以访问图形界面后第一步就完成了,接下来就是配置git,maven等插件及对应环境变量 

 

安装插件

自己自定义实例配置:例如 Jenkins URL http://ip:8800/,相当于浏览器访问路径。

一开始安装失败也不要紧,后续可以自己安装插件

 

 

这里列一下自动化部署发版需要的插件:

  • Maven Integration

  • git,gitee等,看你用的对应代码库所在

  • Publish Over SSH 编译后部署要用到

安装插件时提示加载失败解决办法

例如:java.io.IOException: Failed to load: Gitee Plugin (1.2.7)

此时下载显示正常,但是重启jenkins时加载报错:

 

Failed to load: Maven Integration plugin (3.16)
- Failed to load: Javadoc Plugin (226.v71211feb_e7e9)

关于报错提示:

Failed to load: Credentials Binding Plugin (credentials-binding 1.27.1)
- Required plugin is disabled: SSH Credentials Plugin (ssh-credentials)

其实根据报错可以递推,一层一层找,发现是一些依赖插件安装失败,一般来说是jenkins的版本问题,比如有一些插件安装失败,后续别的插件又依赖此插件导致多个失败,此外也可能是没有配置证书导致(SSH Credentials Plugin):可以在 系统管理-> Manage Credentials->全局凭据 -> 添加凭据 ,然后里面用户名和密码就对应你要绑定的 git仓库的用户名和密码,然后别的暂时不用填,点击确定生成ID序列,在后续创建job任务时会提示选择源码管理,这个时候填写仓库地址和 Credentials证书的ID即可,

其余报错一般根据页面警告提示去找对应插件下载就好了

 

对安装的插件进行环境配置

 

配置变量前我们需要在jenkins所在服务器安装maven,以maven3.8.1为例,还要安装git

1.先去官网下载压缩包
https://archive.apache.org/dist/maven/binaries/
2.上传zip文件到服务器路径下
3.直接解压
unzip apache-maven-3.8.1-bin.zip
4.和咱们的开发环境一样,也是配置setting.xml文件
改两个地方:本地仓库localRepository位置和镜像url
 <localRepository>/zoe/maven-3.8.1/apache-maven-3.8.1/repo</localRepository>
 
  <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
  </mirror>
  
 5.配置环境变量
 新增maven访问变量
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin:$PATH
export MAVEN_HOME=/zoe/maven-3.8.1/apache-maven-3.8.1
 6.刷新配置变量
 source /etc/profile
 7.安装git
 yum install git -y  
 查看git版本
 git --version
​
 7.安好后可以去jenkins界面配置变量啦

 

先配置JDK

选择新增JDK,自动安装

然后配置maven

 

 

设置【系统配置】

找到全局属性- > 勾选环境变量 - > 点击新增

值参考 etc/profile里的就好

 

 

创建job任务

选择maven项目:

在之前配置了全局凭证的Credentials后,这里应该可以直接选到默认的Jenkins了:

 

 

然后是构建环境:

都没什么问题后,下一步是实现自动化的部署,也就是把jar包上传到指定位置并启动

配置跨服务器上传jar包

在上面选择插件时 有提到 Publish Over SSH 这个插件,我们安装这个插件后重启,

然后再系统配置里 刚刚配置环境变量的下面 ,找一下,有一个SSH server,配置一下名称,host和用户名,然后点击Test Configurationc 测试一下,如果失败,看一下服务器秘钥是否生成,第一次配置需要秘钥同步的,多台服务器需要把公钥内容同步到目标多台服务器authorized_keys中:

使用指令生成: ,会在目录/root/.ssh生成id_rsa私钥、id_rsa.pub公钥,将公钥的内容写入到同目录下的authorized_keys文件(jenkins连接多台服务器,将公钥写入到相应服务器的authorized_keys文件即可))
ssh-keygen -t rsa
## 根据提示选择即可,可以直接回车
## 生成后这个文件是在隐藏文件夹ssh里的
[root@iZbp1hwh629hd4xz80i1z0Z ~]#  ls -al ~/.ssh
total 16
drwx------   2 root root 4096 Nov  6 17:01 .
dr-xr-x---. 12 root root 4096 Nov  6 16:35 ..
-rw-------   1 root root    0 May 24 21:54 authorized_keys
-rw-------   1 root root 1675 Nov  6 17:01 id_rsa
-rw-r--r--   1 root root  410 Nov  6 17:01 id_rsa.pub
[root@iZbp1hwh629hd4xz80i1z0Z ~]# cd .ssh
[root@iZbp1hwh629hd4xz80i1z0Z .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub
​
## 复制id_rsa.pub 内容到 authorized_keys 中
​
## 重启ssh服务
service sshd restart

 

然后可以发现Job构建里可以选到:

Send files or execute commands over SSH这一项,点击进行配置

 

进入【系统配置】-> 【系统配置】,需要测试ssh连接是否成功:连接不成功需要检查公有秘钥是否配置完成,如果依然出错可以手动输密码,如下,但很明显不如秘钥安全,这里是测试用倒是还好:

点击change Password ,手动输入ssh对应账户的密码

 

然后再进行测试,Succes

 

 回到Job的创建步骤里来,发现可以选到自己定义Name为 【dev-aliyun】的连接:

 

配置jar文件目录和目标目录,以及前缀移除:

配置source file 和 remote directory:

1.source files:Jenkins打包后生成文件地址,一般jar包会在项目目录下/root/.jenkins/workspace/zoey-alpha-dev/target,在target里面,所以填写路径如下:
tatget/xxx.jar
2.remove prefix:去除前缀,传到远程服务器上去掉此路径,建议填写(此处作为例子,也可以不填):
target
这样的话可以把jar包直接复制到指定路径下:
3.remote directory: 远程服务器 包存放位置,我用的是 /zoe/jar,在这个路径下可以直接覆盖之前的jar包

最后一步:在Exec commond 中配置下启动指令:

 

 现在可以回到Job首页点击构建了 

按照刚刚的配置,会把jar包编译生成并移动到 /zoe/jar 路径下,如果有则进行替换,并启动jar包

关于构建信息查看

构建后如果没有报错,一般可以在此路径下看到生成的target文件夹:

cd /root/.jenkins/workspace/你的job名称

点击项目后可以看到编译记录,点击编译记录可以看到对应的工作台信息输出

 

 点击后可以选择工作台日志:

 

 构建过程信息可以在这里查看。

 

最后可以看到启动成功了,进程创建时间是今天,文件的最后更新时间也正确,自动化部署成功

[root@iZbp1hwh629hd4xz80i1z0Z jar]# ps -ef | grep zoey-alpha.jar
root      4064 29207  0 21:28 pts/1    00:00:00 grep --color=auto zoey-alpha.jar
root     10227     1  0 Nov06 ?        00:01:34 java -Xms128M -Xmx128M -jar /zoe/jar/zoey-alpha.jar --server.port=8087

 

 
posted @ 2022-11-07 22:06  哒布溜  阅读(1844)  评论(0编辑  收藏  举报