部署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.26.1'
[root@server1 gitlab]# gitlab-ctl reconfigure   ##重新加载

2.访问Gitab页面输入:http://172.25.26.1
重置密码
在这里插入图片描述

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

[root@server1 ~]# git clone [email protected]: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  ]

2.虚拟机需要能够联网
3.网页上输入172.25.26.2:8080
在这里插入图片描述
在这里插入图片描述
根据指示获取解锁 Jenkins密码

[root@server2 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
bf44894d032849a093a1adb3b80e029a

将密码复制到网页,解锁Jenkins
在这里插入图片描述
安装官方推荐插件,选择 左侧 选项进行安装
在这里插入图片描述

大概等几分钟,进度条完成即可
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述用户登录,用户名:admin,密码:刚才解锁的 Jenkins密码
在这里插入图片描述

4.配置安装完成之后:

建立一个新的项目westos
在这里插入图片描述
点击配置
在这里插入图片描述
在这里插入图片描述
server2安装git,查看server1私钥(用于连接server1上的gitlab),将私钥添加上去

[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
在这里插入图片描述
写完之后一定要保存

5.在server1编辑文件,选择push之后,每一分钟它会刷新,会在构建名称之后选择控制台输出

[root@server1 ~]# cd demo/
[root@server1 demo]# vim index.html
[root@server1 demo]# cat index.html 
westos.org
[root@server1 demo]# git add index.html
[root@server1 demo]# git commit -m "add index.html"
[master 4817993] add index.html
 1 file changed, 1 insertion(+)
 create mode 100644 index.html
[root@server1 demo]# git push -u origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 282 bytes | 0 bytes/s, done.

在这里插入图片描述
在这里插入图片描述
查看触发情况
在这里插入图片描述6. 关联gitlab和jenkins

jenkins下载插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置
在这里插入图片描述
生成token
在这里插入图片描述
配置gitlab在这里插入图片描述
在这里插入图片描述
测试,push events
在这里插入图片描述
在这里插入图片描述
可以在Jenkins上看到触发的事件和相应的控制台输出
在这里插入图片描述
在这里插入图片描述
自己修改文件上传也会有相应的触发

[root@server1 demo]# echo hello > index.html
[root@server1 demo]# git add index.html 
[root@server1 demo]# git commit -m "add index"
[master 7a224c3] add index
 1 file changed, 1 insertion(+), 1 deletion(-)
[root@server1 demo]# git push -u origin master
Counting objects: 5, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 274 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:root/demo.git
   4817993..7a224c3  master -> master

在这里插入图片描述
在这里插入图片描述
gitlab也可以看到
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qwqq233/article/details/91373320