DevOps Jenkins安装 maven git整合
- 什么是DevOps?
- DevOps能做什么?
- Jenkins安装
- Jenkins插件安装
- Jenkins从github上拉取代码
- Jenkins拉取代码后打包
什么是DevOps?
在网上搜索了很多资料,说了一大堆高大上的词汇,看着也是云里雾里的。其实概念很简单:就是持续集成/持续测试,或者说是 自动化的运维部署
DevOps能做什么?
我们的服务一般都是跑在云服务器上,是基于容器化的。从开发到项目上线要经历 需求-> 开发 -> 测试 ->发布 -> 运维 等一系列的过程,如果这一系列的过程是自动化的,这就是DevPos要做的事情。
大概分为几步:
- 开发人员把code提交到git上。
- 有一个中间服务器专门做把code从git上拉取下来跑测试。
- 如果是maven项目就直接用maven构建,然后执行测试用例,如果失败就生成一个通知,如果成功就打成一个war/jar包并且通过一个指令推送给测试/生产服务器。
这个中间服务器,在我个人的理解中就是jenkins。
Jenkins安装
下载地址:https://www.jenkins.io/zh/download/
这里我下载的通用版本,直接把war包上传到VM。
我这里为了方便直接放到了root文件夹下
然后运行:
java -jar jenkins.war
然后访问虚拟机地址,默认jenkins的端口号是8080 http://192.168.116.141:8080/ ,会出现登录页面:
然后查看解锁Jenkins的文件夹:/root/.jenkins/secrets/initialAdminPassword
[root@zxj ~]# cat /root/.jenkins/secrets/initialAdminPassword
b148f5c23a404c41981da2d9930a7432
[root@zxj ~]#
把这串密匙输入到Jenkins管理员密码。
第一次启动会比较慢,好了之后会让咱们进行插件安装,这里友情提示:巨坑,千万不要点安装推荐插件,不然你会崩溃。
点进入之后点 无,直接点安装:
会进入创建用户的页面:
点击保存并完成,进入下一个界面:
点击保存并完成,会提示可以开始使用jenkins了。
这里我们就已经安装完成了
Jenkins插件安装
虽然安装完成,但是里面一个插件都没有安装,所以什么都做不了,我们第一件事情还是要安装插件,这是一个漫长的过程。
这里我只安装最小安装,一共三个插件:
#汉化插件
Localization: Chinese (Simplified)
#git插件
Git
#maven插件
Maven Integration
看图安装:
然后
再然后:
记得给restart复选框打钩。下载完毕之后jenkins会重启,重启之后输入之前设置的用户名和密码进入,进入之后发现因为之前安装的插件,见面已经变成中文的了:
按照之前的步骤安装剩下两款插件:
安装完之后汁彻底搭建成功啦!
Jenkins从github上拉取代码
首先创建一个任务:
首先给任务起一个名字,并且构建一个自由风格的项目,然后点 确定。 会进入下一个界面:
SSH的原理是非对称加密,需要在Linux里生成公匙和私匙:
[root@zxj ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:HHsjX0FecHJpR9JCrT8nc540mN2ihtgzlMwdZvWCedA root@zxj
The key's randomart image is:
+---[RSA 2048]----+
| ++*=.|
| o.=E.+|
| . o* = |
| . o *.+ .|
| Soo=.o+o.|
| +=o.o+==|
| +.. ..*=|
| . = o ..|
| + |
+----[SHA256]-----+
[root@zxj ~]#
目录在 /root/.ssh/ 进入后可以看到两个文件:
di_rsa为私钥,id_rsa.pub为公钥
用vi
或者cat
命令可以查看秘钥内容。
在GitHub上配置公匙:
进入后把公匙填入:
然后切回jenkins,从新到之前的页面
然后添加私匙:
选择密匙的时候选 root 。然后设置执行时间和shell脚本:
点击保存之后,每分钟都会从git上检查是否有代码更新,如果有就拉取代码进行构建,并且执行shell脚本。
这里我构建失败了,百度了一下,原因是虚拟机回档,没有安装git。重要的事情说三遍: 安装git,安装git,安装git!!!
顺带着maven也要安装好
命令:
yum install git -y
Jenkins拉取代码后打包
记得现在Linux上安装maven
然后创建一个简单的Spring Boot项目:
代码:
@RestController
public class MainController {
@Autowired
private AddService addService;
@GetMapping("/add")
public int add(int a, int b){
return addService.add(a,b);
}
}
@Service
public class AddServiceImpl implements AddService {
@Override
public int add(int a, int b) {
return a+b;
}
}
@SpringBootTest
class JenkinstestApplicationTests {
@Autowired
AddService addService;
@Test
public void addTest(){
int add = addService.add(4, 6);
assert add == 10;
System.out.println("addTest666");
}
}
把代码上传到github上,然后在Jenkins上面构建一个maven项目:
里面很多都和之前的一样,不同的是:
后面还可以设置通知邮箱,设置好之后去设置maven的home:
然后点击配置JDK,不然会使用Linux自带的OpenJDK无法编译,导致报错:
替换OpenJDK请参考:https://www.jianshu.com/p/6cd9de465abe 按照参考最后发现 java -version 无法使用,
再然后
之前设置的是1分钟构建一次,马上就能看到效果:
后悔没有提前配置阿里镜像,,
还有最后的打包位置,都可以在控制台中看见:
挺晚了,,今天先到这里。。