jenkins常见用法


jenkins的一些设置

image-20240130170722131

工具设置

指定maven配置文件

image-20230602153621363

配置jdk

image-20230602153727631

配置maven

image-20230602153741545

通用配置设置

邮件配置

image-20240130171952701

image-20240130172100772

系统邮件配置

image-20240130172329811

新建maven项目

需要安装 Maven Integration plugin 才有这个风格的项目

image-20230602154020479

构建触发器

image-20240130164841787

git配置

image-20230602153845469

构建打包

image-20230602153915978

构建脚本

image-20230602153929983

参数化构建

指定参数

image-20240131150153023

设置参数
image-20240131150228610

image-20240131150251333

在脚本等地方可以同过 ${参数名使用参数}

jenkins的构建基本大概都是这5部分

  • git地址 #代码仓库
  • 构建触发器 #什么时候构建,一般我们都是手动构建
  • 构建前环境 #比如把构建需要的一些文件复制过去
  • 构建 #构建操作,比如生成jar
  • 构建后 # 构建后操作,比如允许jar包

jenkins 的默认目录

里面的workspace是工作目录,拉取的项目就再者里面

#如果要删了了它,就等下重置了jenkins
/root/.jenkins



jenkins 远程主机的操作

主机A上有jenkins 编译环境啥的,但是程序需要运行在主机B上

在主机B上生成公私钥

ssh-Keygen

复制主机B的公钥到主机A,在主机B上执行

 ssh-copy-id -i 主机A #然后输入密码

这时候主机A多了一个授权文件, /root/.ssh/authorized_keys,里面写着允许远程免密登录的公钥

[root@localhost .ssh]# more authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/Cmbje8kbgO4Jexnr4jawxVqBPjXiwMi4u+DqAs8eeQDe4CXg1R1DXriFc94
xzh4Wfg8G2tMiFGsBCOcUos3AiqjME03E5by2/ov4xnP5RXwDaegUfEeHPYgd7MFEx9fb+x+ppU8Iv6kNOT6dcgeqSPumi0W4WdH
rFOd6QSdbf2ixhvVd8FbEv7WjjAqr9WM76JhUKh9F97UBBdhOlF+HG/a8njhGD9gqEJ9Xs8daDJt8LsQ9xFPQKopSA5KZTSSA6XI
X4Mdh1EHVIZ3tPojX6D/Bv44c19D9UvzSh7rEGKbUkvq/KFdHtfOG3hifzvCTv98HK+vW5acrWbdRcLJ root@localhost.loca
ldomain
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIpiA6cD2baP+MYgeR/dn55fWu7w6LDNQa4lPvBlD+zy/qUM3/ffh2JycddzbW
pO9GH3qNCwhGay08roZqpOf2bOZovrzldInCmVQRKbWHmhgOXeXXaenjan0+OsBG39cpfrGRThXX1WMyqCcSfMyNscAULn1lK2dm
OQY4LvSkgelh+5NPVhm+2syxfL+kRcEFmuX5Vq3eGLYZHVJnT+syAlblqELhFxZH1XfovqivbJpD5d0TUcw3WWD8RKI3TTExzdV0
pq22V4KdDkKTu+gkbR8DcuJxGXUC95+3Gh3lksNqSG+7fHuMm8JyU6MQVHb6ULHF+R+WjFbV7mO6dgQp root@localhost.loca
ldomain

如果要主机B也能免密登录主机A ,在主机A上执行

 ssh-copy-id -i 主机B #然后输入密码

这时候可以使用 scp 复制在两台主机之间复制文件

#复制当前主机的文件到远程主机上
scp /root/.ssh/authorized_keys root@主机IP:/root/.ssh/authorized_keys

执行远程主机的脚本(登录到192.168.100.67,然后再 /root/code目录下面, readme.txt 里写入我来了,然后又把它复制到 192.168.100.66 )
ssh root@192.168.100.67,在jenkins 里面不能执行,需要加上 << remotessh

ssh root@192.168.100.67 << remotessh
cd /root/code
echo "我来过了" > readme.txt

scp  readme.txt root@192.168.100.66:/root/code

jenkins 集群

目的是多节点并行构建项目,添加了从节点,会通过ssh把jenkins.war,远程代理工具,还有一些比如maven之类依赖不强的工具包复制过去,也就是说从节点很多东西jenkins都会自动配置

image-20240130173809758

添加节点

image-20240130173857711

配置节点

标签就是给主机取得名字

image-20240130174353406




常用插件介绍

Maven Integration plugin

一个构建maven项目的插件(jenkins使用JDK11+以后有不能识别 mvn需要的JDK版本的bug)

image-20240130151011984

Publish Over SSH

能通过ssh 发送一个文件到目标服务器,或者执行一段脚本,在构建前,或者构建中可用(可以使用账号密码)

如果不用这个插件,我们只能试用shell 免登录,然后scp 复制文件和 ssh登录目标服务器执行操作

image-20240130151356587

设置服务器信息
image-20240130154937187

备注:执行nohup java -jar xxx.jar &命名可能会导致命令行不长时间不退出,从而发送文件超时可以改成
nohup java jar xxx.jar >>nohup.out 2>&1 &
或者简写成 nohup java jar xxx.jar &>>nohup.out & 这样会回立即退出

2>&1

  • 0 表示stdin标准输入,用户键盘输入的内容
  • 1 表示stdout标准输出,输出到显示屏的内容
  • 2 表示stderr标准错误,报错内容
  • 2>&1 是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。

Build Authorization Token Root

远程构建 默认是需要登录的问题,安装插件以后不需要登录

原始是请求:jenkinsUrl/job/jobName/build?token=admin123
安装插件后免密请求地址:jenkinsUrl/buildByToken/build?job=jobName&token=admin123

image-20240130161431610

Blue Ocean

一个ui美化工具,可以让项目界面更加美观,尤其是优化了 pipeline 的流程。
image-20240130173511714

蓝海对界面和交互逻辑做了美化
image-20240130173557951

posted on 2024-01-30 18:08  zhangyukun  阅读(74)  评论(0编辑  收藏  举报

导航