gitlab介绍
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。安装方法是参考GitLab在GitHub上的Wiki页面。
Gitlab的优势和应用场景
1.开源免费,适合中小型公司将代码放置在该系统中
2.差异化的版本管理,离线同步以及强大分支管理功能
3.便捷的GUI操作界面以及强大账户权限管理功能
4.集成度很高,能够集成绝大数的开发工具
5.支持内置HA,保证在高并发下仍旧实现高可用性
gitlab部署
配置阿里云镜像源
下载网络源和epel源
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
--2020-07-30 21:45:26-- https://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 45.253.17.212, 45.253.17.214, 45.253.17.211, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|45.253.17.212|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”
100%[=============================================>] 2,523 --.-K/s 用时 0s
2020-07-30 21:45:26 (1.02 GB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@localhost yum.repos.d]# vim CentOS-Base.repo 修改内容如下图 把$release修改为7
[root@localhost yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@localhost yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
--2020-07-30 21:49:30-- http://mirrors.aliyun.com/repo/epel-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 45.253.17.212, 45.253.17.216, 45.253.17.226, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|45.253.17.212|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:664 [application/octet-stream]
正在保存至: “/etc/yum.repos.d/epel.repo”
100%[=============================================>] 664 --.-K/s 用时 0s
2020-07-30 21:49:31 (58.6 MB/s) - 已保存 “/etc/yum.repos.d/epel.repo” [664/664])
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo epel.repo
安装Git包和其他依赖包
[root@localhost ~]# yum -y install git curl openssh-server openssh-clients postfix cronie policycoreutils-python
设置邮箱服务的开机自启
因为邮箱服务默认是开启的 所有重启就可以
[root@localhost ~]# systemctl restart postfix
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
下载gitlab包
[root@localhost ~]# cd /usr/src/
[root@localhost src]# ls
debug gitlab-ce-11.2.1-ce.0.el7.x86_64.rpm kernels
[root@localhost src]# rpm -ivh gitlab-ce-11.2.1-ce.0.el7.x86_64.rpm
警告:gitlab-ce-11.2.1-ce.0.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:gitlab-ce-11.2.1-ce.0.el7 ################################# [100%]
It looks like GitLab has not been configured yet; skipping the upgrade script.
*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigure
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
此时还未完成要修改文件修改成自己虚拟机的IP地址即可
[root@localhost src]# vim /etc/gitlab/gitlab.rb
重载配置文件并重启
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost src]# gitlab-ctl restart
ok: run: alertmanager: (pid 79960) 0s
ok: run: gitaly: (pid 79989) 1s
ok: run: gitlab-monitor: (pid 80006) 0s
ok: run: gitlab-workhorse: (pid 80047) 1s
ok: run: logrotate: (pid 80059) 0s
ok: run: nginx: (pid 80065) 0s
ok: run: node-exporter: (pid 80161) 1s
ok: run: postgres-exporter: (pid 80169) 0s
ok: run: postgresql: (pid 80193) 1s
ok: run: prometheus: (pid 80202) 0s
ok: run: redis: (pid 80230) 0s
ok: run: redis-exporter: (pid 80275) 0s
ok: run: sidekiq: (pid 80359) 0s
ok: run: unicorn: (pid 80393) 0s
破解管理员密码
[root@localhost ~]# gitlab-rails console production
-------------------------------------------------------------------------------------
GitLab: 11.2.1 (2d6c1c6)
GitLab Shell: 8.1.1
postgresql: 9.6.8
-------------------------------------------------------------------------------------
Loading production environment (Rails 4.2.10)
irb(main):001:0> user = User.where(id: 1).first id为1的是超级管理员
=> #<User id:1 @root>
irb(main):002:0> user.password = 'yangcan123' 密码必须至少8个字符
=> "yangcan123"
irb(main):003:0> user.password_confirmation = 'yangcan123'
=> "yangcan123"
irb(main):004:0> user.save! 保存修改,若无问题将返回true
Enqueued ActionMailer::DeliveryJob (Job ID: 40674b12-f802-47db-945e-da56bf266bc6) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/1
=> true
irb(main):005:0> exit 退出
修改完密码后退出用旧密码发现登不进去
输入新密码登录
以上gitlab搭建完成
CICD案例
环境说明
主机名 | IP | 说明 |
---|---|---|
yangcan1 | 192.168.175.150 | gitlab |
yangcan2 | 192.168.175.100 | Jenkins,tomcat |
yangcan3 | 192.168.175.151 | tomcat |
gitlab安装如上此处省略
三台虚拟机都要下载阿里云的源把$releasever 改为7
[root@yangcan2 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 2523 100 2523 0 0 1456 0 0:00:01 0:00:01 --:--:-- 1457
[root@yangcan2 ~]#
[root@yangcan2 ~]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@yangcan2 ~]#
[root@yangcan2 ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[root@yangcan2 ~]# yum makecache fast
[root@yangcan3 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 12234 0 --:--:-- --:--:-- --:--:-- 12247
[root@yangcan3 ~]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@yangcan3 ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[root@yangcan3 ~]# yum makecache fast
关闭防火墙
[root@yangcan2 ~]# systemctl stop firewalld
[root@yangcan2 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@yangcan3 ~]# systemctl stop firewalld
[root@yangcan3 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
2和3都要安装tomcat
2和3安装openjdk
[root@yangcan2 ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
[root@yangcan3 ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
2上面下载tomcat和Jenkins包
[root@yangcan2 ~]# ls
! anaconda-ks.cfg apache-tomcat-9.0.37.tar.gz jenkins.war
3上面下载tomcat包
[root@yangcan3 ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.37.tar.gz
登录页面
点击下面框可以查看项目等信息
按照图示点击去创建项目
点击上传文件(此选项只是开发人员去上传)
点击添加用户,密码是创建完用户之后点开编辑才能创建
点击edit设置密码
设置项目访问权限
点击project选择edit
验证是否添加成功
此时必须设置新密码,然后登陆成功
项目一般都是加,没有删除
员工离职也是禁用,不是删除
来了新人直接把用户改名,解除禁用就行
2进行安装tomcat
解压并做软链接
[root@yangcan2 ~]# tar xf apache-tomcat-9.0.37.tar.gz -C /usr/local/
[root@yangcan2 ~]# cd /usr/local/
[root@yangcan2 local]# ln -s apache-tomcat-9.0.37 tomcat
[root@yangcan2 local]# ls
apache-tomcat-9.0.37 etc include lib64 sbin src
bin games lib libexec share tomcat
[root@yangcan2 local]# cd tomcat/
[root@yangcan2 tomcat]# ls
bin conf lib logs README.md RUNNING.txt webapps
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work
[root@yangcan2 tomcat]# cd webapps/
[root@yangcan2 webapps]# ls
docs examples host-manager manager ROOT
[root@yangcan2 webapps]# ls ~
! anaconda-ks.cfg apache-tomcat-9.0.37.tar.gz jenkins.war
部署Jenkins
[root@yangcan2 webapps]# cp ~/jenkins.war .
[root@yangcan2 webapps]# ls
docs examples host-manager jenkins.war manager ROOT
启动Jenkins
[root@yangcan2 webapps]# ../bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@yangcan2 webapps]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 100 :::8080 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 1 ::ffff:127.0.0.1:8005 :::*
启动后Jenkins自动解压文件
[root@yangcan2 webapps]# ls
docs examples host-manager jenkins jenkins.war manager ROOT
访问页面8080/Jenkins
虚拟机查看密码并复制密码登录
[root@yangcan2 webapps]# cat /root/.jenkins/secrets/initialAdminPassword
5184a623cfc0427abdb666c39f2932b1
安装git
[root@yangcan2 ~]# yum -y install git
设置密码
配置通用工具
发布项目
新建项目
先安装插件
选择插件安装(此时我选的是git和git client 、gitlab、gitee)