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密码:
使用root登录:
在gitlab上添加秘钥:
创建项目测试:
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
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
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设置
退出重新登录:
2.2、关闭自动注册
退出登录:
2.3、创建组
2.4、创建用户
修改密码:
使用新用户登录:
2.5、组添加用户
2.6、创建项目
2.7、添加sshkey
在服务器上clone项目并推送代码:
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
注意:这个dev用户的身份为Developer
切换到root用户,创建保护分支:
普通用户推送代码测试:由于创建了保护分支,所以普通用户不能push代码到master分支上
解决方法:创建dev分支,并将dev分支推送到gitlab上,开发写完代码后先推送到dev分支,然后发起merge请求,请root用户审核通过后,再推送到master分支上
登录gitlab后,就可以看到dev分支了
dev用户在dev分支上创建文件,然后推送到dev分支上,登录gitlab上的dev用户查看:
dev用户发起merge请求:
登录root用户,查看dev发送过来的merge请求:
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!