DevOps Jenkins安装 maven git整合

  • 什么是DevOps?
  • DevOps能做什么?
  • Jenkins安装
  • Jenkins插件安装
  • Jenkins从github上拉取代码
  • Jenkins拉取代码后打包


什么是DevOps?

在网上搜索了很多资料,说了一大堆高大上的词汇,看着也是云里雾里的。其实概念很简单:就是持续集成/持续测试,或者说是 自动化的运维部署

DevOps能做什么?

jenkins安装maven下载慢_java

我们的服务一般都是跑在云服务器上,是基于容器化的。从开发到项目上线要经历 需求-> 开发 -> 测试 ->发布 -> 运维 等一系列的过程,如果这一系列的过程是自动化的,这就是DevPos要做的事情。

大概分为几步:

  1. 开发人员把code提交到git上。
  2. 有一个中间服务器专门做把code从git上拉取下来跑测试。
  3. 如果是maven项目就直接用maven构建,然后执行测试用例,如果失败就生成一个通知,如果成功就打成一个war/jar包并且通过一个指令推送给测试/生产服务器。

这个中间服务器,在我个人的理解中就是jenkins。

Jenkins安装

下载地址:https://www.jenkins.io/zh/download/

这里我下载的通用版本,直接把war包上传到VM。
我这里为了方便直接放到了root文件夹下

jenkins安装maven下载慢_jenkins安装maven下载慢_02


然后运行:

java -jar jenkins.war

然后访问虚拟机地址,默认jenkins的端口号是8080 http://192.168.116.141:8080/ ,会出现登录页面:

jenkins安装maven下载慢_java_03


然后查看解锁Jenkins的文件夹:/root/.jenkins/secrets/initialAdminPassword

[root@zxj ~]# cat /root/.jenkins/secrets/initialAdminPassword
b148f5c23a404c41981da2d9930a7432
[root@zxj ~]#

把这串密匙输入到Jenkins管理员密码。
第一次启动会比较慢,好了之后会让咱们进行插件安装,这里友情提示:巨坑,千万不要点安装推荐插件,不然你会崩溃。

jenkins安装maven下载慢_java_04


点进入之后点 无,直接点安装:

jenkins安装maven下载慢_Jenkins_05


会进入创建用户的页面:

jenkins安装maven下载慢_取代码_06


点击保存并完成,进入下一个界面:

jenkins安装maven下载慢_git_07


点击保存并完成,会提示可以开始使用jenkins了。

jenkins安装maven下载慢_java_08

这里我们就已经安装完成了

Jenkins插件安装

虽然安装完成,但是里面一个插件都没有安装,所以什么都做不了,我们第一件事情还是要安装插件,这是一个漫长的过程。
这里我只安装最小安装,一共三个插件:

#汉化插件
Localization: Chinese (Simplified)  
#git插件
Git 
#maven插件
Maven Integration

看图安装:

jenkins安装maven下载慢_java_09


然后

jenkins安装maven下载慢_Jenkins_10


再然后:

jenkins安装maven下载慢_java_11


记得给restart复选框打钩。下载完毕之后jenkins会重启,重启之后输入之前设置的用户名和密码进入,进入之后发现因为之前安装的插件,见面已经变成中文的了:

jenkins安装maven下载慢_java_12

按照之前的步骤安装剩下两款插件:

jenkins安装maven下载慢_取代码_13

jenkins安装maven下载慢_jenkins安装maven下载慢_14

安装完之后汁彻底搭建成功啦!


Jenkins从github上拉取代码

首先创建一个任务:

jenkins安装maven下载慢_取代码_15

首先给任务起一个名字,并且构建一个自由风格的项目,然后点 确定。 会进入下一个界面:

jenkins安装maven下载慢_git_16

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安装maven下载慢_Jenkins_17


进入后把公匙填入:

jenkins安装maven下载慢_取代码_18


然后切回jenkins,从新到之前的页面

jenkins安装maven下载慢_java_19


然后添加私匙:

jenkins安装maven下载慢_Jenkins_20


选择密匙的时候选 root 。然后设置执行时间和shell脚本:

jenkins安装maven下载慢_java_21


点击保存之后,每分钟都会从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项目:

jenkins安装maven下载慢_jenkins安装maven下载慢_22


里面很多都和之前的一样,不同的是:

jenkins安装maven下载慢_Jenkins_23


后面还可以设置通知邮箱,设置好之后去设置maven的home:

jenkins安装maven下载慢_java_24

jenkins安装maven下载慢_java_25


然后点击配置JDK,不然会使用Linux自带的OpenJDK无法编译,导致报错:

jenkins安装maven下载慢_取代码_26


替换OpenJDK请参考:https://www.jianshu.com/p/6cd9de465abe 按照参考最后发现 java -version 无法使用,

继续参考:

再然后
之前设置的是1分钟构建一次,马上就能看到效果:

jenkins安装maven下载慢_Jenkins_27

后悔没有提前配置阿里镜像,,

jenkins安装maven下载慢_jenkins安装maven下载慢_28


还有最后的打包位置,都可以在控制台中看见:

jenkins安装maven下载慢_jenkins安装maven下载慢_29


挺晚了,,今天先到这里。。