Gitlab+Jenkins+Docker+项目、实现一套完整的自动化上线服务

目录

         环境

         安装Gitlab

         安装Jenkins

         Jenkins和Gitlab的结合

         开始整合Jenkins

         Docker部署LNMP

         Jenkins配置通过ssh发送文件到LNMP主机

         推送项目到Gitlab

         执行Jenkins构建任务实现自动发布

         访问项目web端

         总结

环境

Gitlab节点:192.168.253.110             Jenkins节点:192.168.253.130

测试环境我就用两台服务器了,项目我放在jenkins这台服务器上。系统版本是centos 7.5的。

安装Gitlab

嗨!Gitlab的安装往这看 ~~> Docker搭建公司内部私有云平台 -- Gitlab

[root@gitlab ~]# docker run -it -d --name gitbab -p 80:80 docker.io/gitlab/gitlab-ce
674e5e8a3e35cb2ec95c385e7130082e1fef0d55494b953b7bd88d039473683c

安装Jenkins

当然安装Jenkins的教程这里也有 ~~> Jenkins的安装及中文展示 ,不过这里我想自己动手再操作一遍。

1)下载java环境,上传jenkins包

[root@jenkins ~]# yum -y install java-1.8.0 lrzsz   java环境
[root@jenkins ~]# ls
jenkins-2.222.4-1.1.noarch.rpm    我用的是这个版本

2)安装并启动jenkins

[root@jenkins ~]# rpm -ivh jenkins-2.222.4-1.1.noarch.rpm 
警告:jenkins-2.222.4-1.1.noarch.rpm: 头V4 DSA/SHA1 Signature, 密钥 ID d50582e6: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:jenkins-2.222.4-1.1              ################################# [100%]
[root@jenkins ~]# systemctl  start jenkins
[root@jenkins ~]# setenforce 0
[root@jenkins ~]# systemctl  stop firewalld

3)浏览器http:ip + 8080 进行访问

[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
252fd6734a17467684cce9591eba7229

4)配置下载插件加速(默认的插件下载源在国外,下载特别慢)

[root@jenkins ~]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>        #改为国内的网站
  </site>
</sites>

[root@jenkins ~]# cd /var/lib/jenkins/updates/
[root@jenkins updates]# sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json 
[root@jenkins updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
[root@jenkins ~]# systemctl  restart jenkins

5)下载中文插件

重启即可!!

Jenkins和Gitlab的结合

1)我们在Gitlab上创建一个项目用来存放我们的代码

2)我们克隆项目仓库到本地,测试是否可以克隆。

在windows上创建一个空目录,用来存放项目仓库 解释一下:

这里我的git是windows版本的 ~~> 这是windows版的包 , Linux版的git ~~> 在这里

 我在桌面新建的目录,用来放项目

注:首次克隆会提示输入gitlab的登录的账号和密码

3)查看是否成功

4)在项目中上传一行代码做测试(我新建了一个txt文件)

5)做本地提交,把代码提交到gitlab中wordpress项目中

6)在wordpress的这个项目中看是否成功

开始整合Jenkins

1)在jenkins节点安装git插件和git环境

[root@jenkins ~]# yum -y install git

      1.1)web端安装git插件

2)在Jenkins创建任务

配置gitlab的项目仓库的URL地址和登录gitlab的账号密码,填写完毕后保存

3)开始构建任务

  3.1)点击这次构建任务,查看控制台输出

!!此时的Jenkins和Gitlab就结合成功了

Docker部署LNMP

解释一下:这里我的项目是wordpress,需要用到Lnmp的环境。

1)自己构建lnmp的docker镜像,这里有构建镜像的包 ~~> 点我点我

[root@jenkins ~]# tar xzf lnmp.tar.gz 
[root@jenkins ~]# cd lnmp
[root@jenkins lnmp]# docker build -t lnmp .
[root@jenkins ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
lnmp                latest              57e3c3e09aab        9 seconds ago       443 MB
docker.io/centos    latest              0d120b6ccaa8        7 weeks ago         215 MB

2)启动一个lnmp的容器

[root@jenkins ~]# docker run --name wordpress -itd -p 81:80 -v /opt/html/:/usr/local/nginx/html lnmp
1e62d99e01c2c20b4e529afffc01e11dea54e7e2d1a2f80333a3b1c99589390a
[root@jenkins ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
1e62d99e01c2        lnmp                "/usr/bin/supervis..."   6 seconds ago       Up 6 seconds        0.0.0.0:81->80/tcp   wordpress

Jenkins配置通过ssh发送文件到LNMP主机

1)jenkins上需要安装Publish Over SSH插件,通过此插件jenkins可以把工作空间的文件发送到远程主机上

2)配置插件,添加远程主机,将LAMP主机添加进来

3)到首页,去配置任务

!!  至此任务配置完毕!执行任务就会自动发送文件到远程主机了

推送项目到Gitlab

解释一下:这里我项目上的博客,当然也可以上其他的。

1)在电脑上解压安装包,复制包内容粘贴到本地仓库

2)对本地仓库进行提交,推送到Gitlab上

3)查看gitlab是否推送成功

执行Jenkins构建任务实现自动发布

1)构建任务

2)在控制台查看是否构建成功

访问项目web端

1)浏览器输入http:// + ip + 81

总结

           费了一天的时间做了这个出来,感觉还不错,这里我用的项目是博客,伙伴们也可以用其他的项目,写作不易啊!!

猜你喜欢

转载自blog.csdn.net/yeyslspi59/article/details/108926990