Gitlab--安装配置使用

一、gitlab安装

1.1、docker化安装gitlab

#1、拉取镜像
[root@git ~]# docker pull gitlab/gitlab-ce
[root@git ~]# docker images
REPOSITORY                                       TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ce                                 latest              229b36075891        3 days ago          1.84GB

#2、创建相关目录
[root@git ~]# mkdir -p /mnt/gitlab/etc
[root@git ~]# mkdir -p /mnt/gitlab/log
[root@git ~]# mkdir -p /mnt/gitlab/data

#3、运行容器
[root@git ~]# docker run -d  -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /mnt/gitlab/etc:/etc/gitlab -v /mnt/gitlab/logs:/var/log/gitlab -v /mnt/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
[root@git ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                                 PORTS                                                           NAMES
3694c2292ed0        gitlab/gitlab-ce    "/assets/wrapper"   About a minute ago   Up About a minute (health: starting)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:222->22/tcp   gitlab

#4、配置gitlab
[root@git ~]# vim /mnt/gitlab/etc/gitlab.rb
external_url 'http://192.168.11.10'   # 配置http协议所使用的访问地址,不加端口号默认为80
#配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.11.10' 
gitlab_rails['gitlab_shell_ssh_port'] = 222

#5、重启容器
[root@git ~]# docker restart gitlab
gitlab

#6、访问测试

创建root密码:

image

使用root登录:

image

image

在gitlab上添加秘钥:

image

image

创建项目测试:

image

image

1.2、进程式安装gitlab

1.2.1、相关链接

官网:https://about.gitlab.com/

国内镜像:https://mirrors.tuna.tsinghua.edu.cn/gitlab‐ce/yum/

官网建议安装步骤:https://about.gitlab.com/install/#centos-7

1.2.2、安装环境

1、 CentOS 6或者7

2、 2G内存(实验)生产(至少4G)(内存给小了会报502)

3、 禁用防火墙,关闭selinux

1.2.3、安装步骤

1)安装依赖包

[root@git ~]# yum install -y curl policycoreutils-python openssh-server

2)下载rpm包并安装

[root@git ~]# mkdir /application && cd /application
[root@git application]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.6-ce.0.el7.x86_64.rpm
[root@git application]# rpm -ivh gitlab-ce-12.0.6-ce.0.el7.x86_64.rpm

image

3)配置/etc/gitlab/gitlab.rb文件

[root@git application]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.11.10'

4)重新配置gitlab(时间较长)

[root@git application]# gitlab-ctl reconfigure
....
Chef Client finished, 509/1343 resources updated in 03 minutes 13 seconds
gitlab Reconfigured!

5)通过浏览器输入ip地址访问gitlab

image

1.2.4、gitlab目录结构

/opt/gitlab/			#gitlab的安装目录(千万不要删除opt目录)
/var/opt/gitlab/		#gitlab的数据目录
/var/opt/gitlab/git-data/	#gitlab的数据仓库目录
/var/log/gitlab         	#存放所有服务的日志目录

1.2.5、gitlab常用命令

gitlab-ctl start	#启动gitlab
gitlab-ctl stop		#停止gitlab
gitlab-ctl status	#查看gitlab运行状态
gitlab-ctl stop nginx	#停止某一项服务
gitlab-ctl tail		#查看所有gitlab服务的日志

[root@git gitlab]# gitlab-ctl status
run: alertmanager: (pid 54613) 489s; run: log: (pid 54351) 541s
run: gitaly: (pid 54558) 492s; run: log: (pid 53840) 654s
run: gitlab-monitor: (pid 54563) 492s; run: log: (pid 54268) 559s
run: gitlab-workhorse: (pid 54545) 493s; run: log: (pid 54175) 583s
run: grafana: (pid 54631) 488s; run: log: (pid 54504) 505s
run: logrotate: (pid 54204) 574s; run: log: (pid 54217) 571s
run: nginx: (pid 54187) 580s; run: log: (pid 54196) 579s
run: node-exporter: (pid 54553) 492s; run: log: (pid 54243) 567s
run: postgres-exporter: (pid 54624) 489s; run: log: (pid 54412) 534s
run: postgresql: (pid 53963) 639s; run: log: (pid 53980) 638s
run: prometheus: (pid 54597) 491s; run: log: (pid 54315) 547s
run: redis: (pid 53804) 661s; run: log: (pid 53815) 659s
run: redis-exporter: (pid 54579) 491s; run: log: (pid 54284) 553s
run: sidekiq: (pid 54143) 592s; run: log: (pid 54153) 591s
run: unicorn: (pid 54113) 598s; run: log: (pid 54134) 596s

二、gitlab使用

2.1、appearance设置

image

退出重新登录:

image

2.2、关闭自动注册

image

退出登录:

image

2.3、创建组

image

image

image

2.4、创建用户

image

image

修改密码:

image

image

使用新用户登录:

image

image

image

2.5、组添加用户

image

image

2.6、创建项目

image

image

image

2.7、添加sshkey

image

在服务器上clone项目并推送代码:

image

image

2.8、保护分支设置

将dev用户的公钥放置到gitlab上的普通用户上:

[root@git ~]# useradd dev && echo acb123|passwd --stdin dev
[root@git ~]# su - dev
[dev@git ~]$ ssh-keygen -t rsa
[dev@git ~]$ cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkGhc8SHiipYajyo93YxDNvNvmY7aOIcsqLY8lnCAR0A2eWxE8zYTD23w0o2TlxJqagBMs22zmhP+hYZV0YXCyBFyvmcu/dJt9hWQG+a9tVAB1EMdHdWgcAn9bPTFoRX8/sB4iVtK+e5p2IY6xR28uWHFwTbJz1xDv8szkOhl81cNB/AFHLp2Fy9rYtMxoQ+eyrueOwC21megFtiUvb6SrTFN6pcD9CsKzfDTkupto42TQmovCJPVHUSrp9swlusYRaaOcU+jRvhMkYq+m0BkiCo66sepKSPvpVrvRcgfvwK4LpJfXb92uFeYqrGLzcBW8lNRbNk06Dw8TbtGs3NxV dev@git

image

注意:这个dev用户的身份为Developer

image
普通用户clone代码测试:

image

切换到root用户,创建保护分支:

image

image

image

普通用户推送代码测试:由于创建了保护分支,所以普通用户不能push代码到master分支上

image

解决方法:创建dev分支,并将dev分支推送到gitlab上,开发写完代码后先推送到dev分支,然后发起merge请求,请root用户审核通过后,再推送到master分支上

image

登录gitlab后,就可以看到dev分支了

image

dev用户在dev分支上创建文件,然后推送到dev分支上,登录gitlab上的dev用户查看:

image

dev用户发起merge请求:

image

image

image

登录root用户,查看dev发送过来的merge请求:

image

image

image

image

posted @ 2020-01-14 15:30  运维人在路上  阅读(1221)  评论(0编辑  收藏  举报