jenkins安装参考以下链接

https://blog.csdn.net/sun007700/article/details/88549928

本文参考链接

https://blog.51cto.com/xiaorenwutest/2165883

 

在此之前,先配置ssh keys。

 

1、在 Jenkins 服务器上面生产 SSH Keys

如果要通过 git 协议拉取代码,需要建立 Jenkins 服务器和 Gitlab 服务器的无密码通信,我们首先要生存一组密钥对。

ssh-keygen -t rsa -C "wzlinux"
[root@jenkins ~]# ll .ssh/
total 12
-rw------- 1 root root 1675 Sep  3 22:05 id_rsa
-rw-r--r-- 1 root root  408 Sep  3 22:05 id_rsa.pub
-rw-r--r-- 1 root root  348 Sep  4 21:21 known_hosts

2、在 Gitlab 上面配置生产的 SSH Keys

我们登录 gitlab,打开自己的用户设置,选择 SSH Keys 选项进行配置,填写我们刚刚生成的公钥(id_rsa.pub)。
SSH Keys 帮助我们建立 jenkins 到 gitlab 的安全无密码连接。

持续集成之 Jenkins 如何通过 Gitlab 上的权限认证(三)

3、在 jenkins 服务器上面测试代码拉取

[root@jenkins test]# git clone git@172.18.2.100:java/game.git
Cloning into 'game'...
remote: Enumerating objects: 1768, done.
remote: Counting objects: 100% (1768/1768), done.
remote: Compressing objects: 100% (584/584), done.
remote: Total 1768 (delta 1112), reused 1768 (delta 1112)
Receiving objects: 100% (1768/1768), 15.02 MiB | 0 bytes/s, done.
Resolving deltas: 100% (1112/1112), done.

我们可以看到,配置了SSH Keys之后,我们可以直接在服务器上面无密码拉取代码了。

4、再次打开jenkins任务配置

 

登录gitlab,配置token,如下:

 

当我们再次打开配置,发现认证还是有问题,这时候我们需要添加认证,因为 jenkins 并不知道我们的秘钥。

持续集成之 Jenkins 如何通过 Gitlab 上的权限认证(三)

添加私钥,然后确定。

持续集成之 Jenkins 如何通过 Gitlab 上的权限认证(三)

认证选择我们刚刚添加的私钥,已经不再报错。

持续集成之 Jenkins 如何通过 Gitlab 上的权限认证(三)

5、构建测试

修改了权限之后,我们重新构建项目,查看整个过程。

持续集成之 Jenkins 如何通过 Gitlab 上的权限认证(三)

持续集成之 Jenkins 如何通过 Gitlab 上的权限认证(三)

没有任何问题,SSH Keys权限认证通过。

 

pipeline流水线服务呢,是防止在测试环境测试可以到了生产环境就失败的自动化流程,减少了构建失败的次数

而且配合docker服务,docker的可移植性好,99.9%系统兼容,所以这里写一篇对流水线的文章:希望可以帮到大家

 

首先呢需要通过gitlab和jenkins、harbor仓库、docker的服务器

至少需要这四个服务

图片1.png

首先登陆gitlab服务器拿到git地址如下:

git@10.0.3.201:develop2/tomcat-java-demo.git

然后登陆jenkins服务创建项目

图片3.png

图片4.png图片5.png

图片6.png

 

内容:

node{

    stage('git下载'){

        //check CODE

        git credentialsId: '160cbe7c-14ff-47a5-87a0-6fbf81cdc1c0', url: 'git@gitlab.example.com:lxf/lxf-demo.git'

    }

 

 

    stage('构建'){

        sh '''

cd /opt/apache-tomcat-7.0.61/webapps/jenkins/workspace/tomcat-test

mv index.html index.jsp

cat >> Dockerfile << EOF

FROM tomcat:tomcat

RUN rm -rf /usr/local/tomcat/webapps/ROOT/index.jsp

COPY ./index.jsp  /usr/local/tomcat/webapps/ROOT/index.jsp

WORKDIR /usr/local/tomcat

EXPOSE 8080

ENTRYPOINT ["./bin/catalina.sh", "run"]

EOF

    '''

    }

 

    stage('上传到仓库'){

        sh '''

docker build -t tomcat:2 .

docker tag tomcat:2 www.lxf.com/nginx/tomcat:2

docker login -u lixiaofeng -p na5016NAC www.lxf.com

docker push www.lxf.com/nginx/tomcat:2

docker rmi www.lxf.com/nginx/tomcat:2

docker rmi tomcat:2

        '''

    }

    stage('给docker集群部署'){

        sh '''

ssh  172.16.4.20  'bash -x -s'  </jiaoben/test.sh

        '''

    }

 

}

 图片7.png

图片8.png图片9.png

图片10.png

图片11.png

然后进行构建

图片12.png

图片13.png

这是日志第四部分的日志

图片14.png

 

看一下jenkins服务器下生成的文件

图片15.png

接下来看一下效果

  图片16.png

访问一下

出现乱码是因为容器中没有修改字符集

图片17.png

 

在看看仓库中是不是有了镜像

图片18.png

 

容器回滚:把新的容器删掉吧,旧的容器再次启动起来:

 

image.png

image.png

开始构建:

image.png

看看效果:

image.png

 

image.png

image.png

 

©著作权归作者所有:来自51CTO博客作者tty之星的原创作品,如需转载,请注明出处,否则将追究法律责任

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐