当你想找一些资料时,网上99%相关的文章中,有50%是转载别人的,有40%是写的不清楚的,剩下10%是写的部分不清楚的;究其原因,并不是问题有多复杂,而是大家的知识盲点各有不同,都是不满瓶的水大同小异,所以一点点问题就难倒了自己!好在,坚持试错下去,终能找着正确答案。
现在的问题
近2周我把全网的项目都加入了jenkins流水线做了sonar代码安全扫描,把最基础的${param.xx}这样的xss问题都爬出来了,交了总监,找了各个开发去修复。解决了最近公信办监管应用下架的问题。
但是做完一阶段工作后,我发现有很多工作,可以自动化,这其中就有几种情况:
1、自动创建jenkins-job
2、提交代码后,自动构建,输出结果
…
今天我们先完成第1点中的其中一种准备工作
原因
但凡自动化的,无外乎就是拿API和CLI来做,相比较了一下,CLI更简便,后面可写入shell脚本进行业务需求的控制。
参考资料
官方说明写的很清楚,但有些地方还要再加说明才行。
jenkins安全配置
使用管理员登陆JENKINS_URL
,Manage Jenkins
-Configure Global Security
-
修改安全配置:
-
SSH Server port设置:
不建议随机,像我们这边的服务器管理,设置了端口防火墙,范围外的端口就访问不了,又会引入新的问题
-
点击
Save
提交后,查看jenkins服务器查看端口启动情况:
身份验证
管理员登陆JENKINS_URL
,Manage Jenkins
-Manage Users
,点击admin
用户进入,Configure
写入客户机
的公共密钥
JENKINS服务器:
192.168.1.1
其它VM:192.168.1.2
我要在192.168.1.2
上执行SSH
远程JENKINS
服务器进行CLI命令行
操作,对于我们来讲,192.168.1.2
就统称为上面的客户机
那么问题来了,我们输入192.168.1.2
的公钥
- vm生成公钥操作
执行[root@192.168.1.2 jenkins-sonar]# ssh-keygen -t rsa
公钥存放地址:/root/.ssh/id_rsa.pub
把内容拷进Configure
页面的SSH Public Keys
可放多个公钥,换行存放即可
执行CLI
- 查看JENKINS-SSH port
curl -Lv http://192.168.1.1/jenkins/login 2>&1 | grep -i 'x-ssh-endpoint'
- 执行命令检查
ssh -l admin -p 8009 192.168.1.1 help
完成!