jenkins安装参考以下链接
https://blog.youkuaiyun.com/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 的安全无密码连接。
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 并不知道我们的秘钥。
添加私钥,然后确定。
认证选择我们刚刚添加的私钥,已经不再报错。
5、构建测试
修改了权限之后,我们重新构建项目,查看整个过程。
没有任何问题,SSH Keys权限认证通过。
pipeline流水线服务呢,是防止在测试环境测试可以到了生产环境就失败的自动化流程,减少了构建失败的次数
而且配合docker服务,docker的可移植性好,99.9%系统兼容,所以这里写一篇对流水线的文章:希望可以帮到大家
首先呢需要通过gitlab和jenkins、harbor仓库、docker的服务器
至少需要这四个服务
首先登陆gitlab服务器拿到git地址如下:
git@10.0.3.201:develop2/tomcat-java-demo.git
然后登陆jenkins服务创建项目
内容:
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
'''
}
}
然后进行构建
这是日志第四部分的日志
看一下jenkins服务器下生成的文件
接下来看一下效果
访问一下
出现乱码是因为容器中没有修改字符集
在看看仓库中是不是有了镜像
容器回滚:把新的容器删掉吧,旧的容器再次启动起来:
开始构建:
看看效果:
©著作权归作者所有:来自51CTO博客作者tty之星的原创作品,如需转载,请注明出处,否则将追究法律责任