jenkins的一些设置
工具设置
指定maven配置文件
配置jdk
配置maven
邮件配置
系统邮件配置
新建maven项目
需要安装 Maven Integration plugin 才有这个风格的项目
构建触发器
git配置
构建打包
构建脚本
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 [email protected]
ldomain
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIpiA6cD2baP+MYgeR/dn55fWu7w6LDNQa4lPvBlD+zy/qUM3/ffh2JycddzbW
pO9GH3qNCwhGay08roZqpOf2bOZovrzldInCmVQRKbWHmhgOXeXXaenjan0+OsBG39cpfrGRThXX1WMyqCcSfMyNscAULn1lK2dm
OQY4LvSkgelh+5NPVhm+2syxfL+kRcEFmuX5Vq3eGLYZHVJnT+syAlblqELhFxZH1XfovqivbJpD5d0TUcw3WWD8RKI3TTExzdV0
pq22V4KdDkKTu+gkbR8DcuJxGXUC95+3Gh3lksNqSG+7fHuMm8JyU6MQVHb6ULHF+R+WjFbV7mO6dgQp [email protected]
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 [email protected],在jenkins 里面不能执行,需要加上 << remotessh
ssh [email protected] << remotessh
cd /root/code
echo "我来过了" > readme.txt
scp readme.txt [email protected]:/root/code
常用插件介绍
Maven Integration plugin
一个构建maven项目的插件(jenkins使用JDK11+以后有不能识别 mvn需要的JDK版本的bug)
Publish Over SSH
能通过ssh 发送一个文件到目标服务器,或者执行一段脚本,在构建前,或者构建中可用(可以使用账号密码)
如果不用这个插件,我们只能试用shell 免登录,然后scp 复制文件和 ssh登录目标服务器执行操作
设置服务器信息
备注:执行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
Blue Ocean
一个ui美化工具,可以让项目界面更加美观,尤其是优化了 pipeline 的流程。
蓝海对界面和交互逻辑做了美化
jenkins 集群
目的是多节点并行构建项目,添加了从节点,会通过ssh把jenkins.war,远程代理工具,还有一些比如maven之类依赖不强的工具包复制过去,也就是说从节点很多东西jenkins都会自动配置
添加节点
配置节点
标签就是给主机取得名字