gitlab和jenkins

什么是gitlab:

  • GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

什么是Jenkins:

  • Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

两者结合的优势:

  • 这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定频率自动运行测试、构建和部署的任务,帮组开发团队更高效的集成和发布代码

一、gitlab的安装与配置

  1. 安装配置
[root@server1 ~]# yum install -y gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm 
[root@server1 ~]# cd /etc/gitlab/
[root@server1 gitlab]# ls
gitlab.rb
[root@server1 gitlab]# vim gitlab.rb   ##编辑gitlab的配置文件,将ip修改为自己gitlab所在的ip
  13 external_url 'http://172.25.19.1'
[root@server1 gitlab]# gitlab-ctl reconfigure   ##重新加载
  1. 访问Gitab页面输入:http://172.25.19.1
  • 重置密码
    在这里插入图片描述
  • 以root身份登陆

在这里插入图片描述

  • create a project
    在这里插入图片描述
    在这里插入图片描述
  • 添加公钥
    为了通过ssh直接上传和拉取代码,所以需要在gitlab中做免密(在/root/.ssh/中生成公钥和私钥)
    在这里插入图片描述
    在这里插入图片描述
  1. 在物理机上使用git来进行版本控制时,为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s)😕/, git://,或是只是以一个用户名(git 会认为这是一个ssh 地址)为前辍.

在这里插入图片描述

[root@server1 ~]# git clone git@172.25.19.1:root/demo.git
[root@server1 ~]# cd demo/
[root@server1 demo]# ls
README.md

二、安装jenkins

  1. 在server2中安装 jdk和 jenkins
[root@server2 ~]# yum install -y jdk-8u171-linux-x64.rpm
[root@server2 ~]# yum install -y jenkins-2.121.3-1.1.noarch.rpm
[root@server2 ~]# /etc/init.d/jenkins start      ##端口是8080
Starting jenkins (via systemctl):                          [  OK  ]
  1. 虚拟机需要能够联网
  2. 网页上输入172.25.19.2:8080
    在这里插入图片描述
  • 获取解锁 Jenkins密码
[root@server2 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
bf44894d032849a093a1adb3b80e029a
  • 将密码复制到网页,解锁Jenkins
    在这里插入图片描述
  • 安装官方推荐插件,选择 左侧 选项进行安装
    在这里插入图片描述
  • 大概等几分钟,进度条完成即可
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 用户登录,用户名:admin,密码:刚才解锁的 Jenkins密码
    在这里插入图片描述
    在这里插入图片描述
  1. 配置安装完成之后:
  • 建立一个新的项目hui
    在这里插入图片描述
  • 点击配置
    在这里插入图片描述
    在这里插入图片描述
  • 查看私钥,将私钥添加上去
[root@server2 ~]# yum install -y git     ##一定要安装
[root@server1 ~]# cd .ssh
[root@server1 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[root@server1 .ssh]# cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA2utjQ1jkywkrOOmpXKCsHe0UR5v75UCQHlmgxNqiSKYNFKry
I4Z43QMlFvAYOh7qKE9o5UVXUfK7nEf4MzkH3J4Z/aRK/7ArVT8Arzg5gMp3e9Zt
IQ/h1TjQo391tCJG44N6lRakrOuYczlG+2Ms/a/f/u3GKmG2GAjN5e5IcgrTx3PC
c9oSAU7s92Rvf1H+vJ29rw0B3/mxhJh3vP/rU5qqFjcilYhY/XdO9L8WqAaDqwsv
5CEQMHISlnio4xAO10qGGzXSy+4+R1hScQ9JCg420OIyd9sMQ6BuLRmIBg61/G5g
uyoW6NHJ7B2UUbjIXM3FEhBPRC8lMJl0uF2bxwIDAQABAoIBADLKa/RDGon0rZ99
rrp72JL030Ch8vZEXWt9NeyWIRKj2+MQqi8N0trMEP3aZHSPmZoSmm6fANxVaauf
kvknYSiRUcxkIrZhxBv6CwmcDNNRphkILbd+/NFAZj+YodFSJopAhd8zKq+n1W3e
Oxa18slE1b5KojBRDTNUT5jqCMrURDj0MuhTFsZcrR61BxQpnerulRTDM19vFggS
6MMcsvq14T70dh/6/xZZT06DIpa3cjryj/wOlai2L3Bg+Jp6NJkKQLPgx52DDNo/
ZXfshN81WjujydgHoHKn+hnBZXV1qFAVG9nqoEncrUVvuQYZXjmvWw1RDCDFqFaT
u4v+c6ECgYEA+qKst2xg/W4LNinKHKBlgyTtKY7a6amT6QQNcdoPZq1fWPwf3okj
WpNgxxaM91LetmaOE7FtSLLjr9aczjnJ30BojP/JWwuonpHlVUo+d+adqHXQDF7s
JopjHFwllFFP2oc+tKXg8KoeMjlID/jLjLKI8SAmCHjWtx+9PVIglPcCgYEA35rt
8BlE75Pljk4DSVaNfVFFVFfRpwbCXBJqg6wPtvvZF89TGgRT508PArXmAKiuXE3r
saEFz9HPGlwLc5A5fWdjpxPBQ+gHWyl/21ahun9ynppo4fZ+luPYgZ6nW9wF9j/G
BhubtmQyeH+eCGH6aR95ql060LBX2wuFlxYQC7ECgYEAtbiO2+rzo6xO6rV/+iN9
lomGfvQ52uL+ABvVF7BQLFUV5bHf9XyfKoPizlaWXJg0LDHNX4/sOaKinRJQ3OFf
ccQESf8HYkDgwB/uFFnhUxPdSZAqCV4lgIgj9iMFiDUwXbRjjZ0bq8LcY/POQO5V
vyyPR6zUhp3+qAWWMsjCIN8CgYEAmg6jOpYeYbYTJb1oFEI2z42L57Vts9c7V7Y0
fq2wUhEonHfyOG2c5TQaEnMCmZeeMehZqBNZ7roOJ4odNay7f0QZa4Z31HJrhwqL
lbIVUWn3rYCTHIP46brncz687dQko2mC5Lhmyv4zq8O5POtMXNsbtx3upNOqZDeG
/fZsbbECgYBBB1tC1OEfjCwaqrN6sK1QIxvTQLYErKrHFg0u//BqL+NNFyUE2kbA
XYv+Bm/jOnyoEOP1oTHU8JcJBxXbQFJkWbdYFya7RvxjjdHpyWxfeSDuCmqBw6g4
GMBIfFU6JCv5/jgpuWMgfd+zxwJ9s6CVhjnEEcueB01R77AkXisrgQ==
-----END RSA PRIVATE KEY-----

在这里插入图片描述
在这里插入图片描述

  • 构建触发器,选择定时构建,写上定时策略
    在这里插入图片描述
  • 构建环境–>增加构建步骤—>执行shell ls -l
    在这里插入图片描述
    在这里插入图片描述
  • 写完之后一定要保存
  1. 在真机中编辑文件,选择push之后,每一分钟它会刷新,会在构建名称之后选择控制台输出
[root@server1 ~]# cd hui/
[root@server1 hui]# vim index.html
[root@server1 hui]# cat index.html 
westos.org
[root@server1 hui]# git add index.html 
[root@server1 hui]# git commit -m "add index" 
[root@server1 hui]# git push -u origin master

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
6. 关联gitlab和jenkins

  • jenkins下载插件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    配置
    在这里插入图片描述
    生成token
    在这里插入图片描述

  • 配置gitlab
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 测试,push events
    在这里插入图片描述
    可以在Jenkins上看到触发的事件和相应的控制台输出
    在这里插入图片描述
    在这里插入图片描述

  • 自己修改文件上传也会有相应的触发

[root@server1 ~]# cd hui/
[root@server1 hui]# echo hello > index.html
[root@server1 hui]# git add index.html 
[root@server1 hui]# git commit -m "add index" 
[root@server1 hui]# git push -u origin master

在这里插入图片描述
在这里插入图片描述

三、安装docker

  1. server2安装docker,并导入镜像
[root@server2 docker]# ls
container-selinux-2.21-1.el7.noarch.rpm
docker-ce-18.06.1.ce-3.el7.x86_64.rpm
libsemanage-2.5-8.el7.x86_64.rpm
libsemanage-python-2.5-8.el7.x86_64.rpm
pigz-2.3.4-1.el7.x86_64.rpm
policycoreutils-2.5-17.1.el7.x86_64.rpm
policycoreutils-python-2.5-17.1.el7.x86_64.rpm
[root@server2 docker]# yum install -y *

[root@server2 docker]# systemctl start docker
[root@server2 docker]# docker load -i registry.tar
[root@server2 docker]# docker load -i nginx.tar


[root@server2 docker]# docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry:2.3.1
2d8cd0427136f4efed8b4d5071772e634a0fccb5a1cd5d07941fc3b4a58d3a7f
[root@server2 docker]# ll /var/run/docker.sock 
srw-rw---- 1 root docker 0 Mar 31 16:40 /var/run/docker.sock
[root@server2 docker]# chmod 777 /var/run/docker.sock

[root@server2 docker]# vim /etc/sudoers
 92 jenkins ALL=(ALL)       NOPASSWD: ALL

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 配置后保存
[root@server1 hui]# pwd
/root/hui
[root@server1 hui]# vim Dockerfile
[root@server1 hui]# cat Dockerfile 
FROM nginx
COPY index.html /usr/share/nginx/html
[root@server1 hui]# ls
Dockerfile  index.html  README.md
[root@server1 hui]# cat index.html 
westos.org
[root@server1 hui]# git add Dockerfile
[root@server1 hui]# git commit -m "add Dockerfile"
[root@server1 hui]# git push -u origin master
[root@server2 docker]# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED              SIZE
localhost:5000/nginx   4                   23dec48ca5fa        About a minute ago   109MB
localhost:5000/nginx   latest              23dec48ca5fa        About a minute ago   109MB
nginx                  latest              e548f1a579cf        13 months ago        109MB
registry               2.3.1               83139345d017        3 years ago          166MB

在这里插入图片描述
在这里插入图片描述

  • 修改index.html,然后上传,会引发新的触发
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可以用tree查看docker
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值