gitlab:
Gitlab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过Web 界面进行访问公开的或者私人的项目
官方网站:https://about.gitlab.com
所需环境:
gitlab | 192.168.1.128 |
---|---|
client-1 | 192.168.1.129 |
client-2 | 192.168.1.134 |
一、安装gitlab
1、安装前提软件
[root@gitlab ~]# yum install curl policycoreutils openssh-server openssh-clients postfix -y
2、下载清华gitlab安装包
[root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm #下载rpm包到虚拟机
3、yum安装
[root@gitlab ~]# ls
gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
[root@gitlab ~]# yum -y install gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
4、修改配置文件,指定ip地址
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.1.128' #修改
5、配置启动 gitlab
[root@gitlab ~]# gitlab-ctl reconfigure
查看状态
[root@gitlab ~]# gitlab-ctl status
6、gitlab服务管理命令(开启/关闭/重启)
[root@gitlab ~]# gitlab-ctl start/stop/restart
二、gitlab—管理配置
1、登录gitlab
http://192.168.1.128
管理员:root
密码:初始配置新密码,最少8位
2、取消注册功能
登录gitlab——admin area(顶部菜单栏小扳手图标)——左侧面板settings——Sign-up Restrictions——去除勾选sign-up enabled——下拉save保存
3、修改登录欢迎界面
登录gitlab——admin area——Appearance——填写管理员联系方式和logo——save
注销查看效果:
4、项目创建流程
1)创建用户
登录gitlab——admin area——new user——添加用户名、邮箱——create user——edit——修改密码
2)创建group
登录gitlab——admin area——new group
Gitlab中的组和项目有三种访问权限:
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
把zhangsan用户添加到组中:
Gitlab用户在组中有五种权限:
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,测试、产品经理可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,开发人员可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
3)创建项目
登录gitlab——admin area——new project——注意选择组(dianfeng)
Gitlab中的组和项目有三种访问权限:
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
4)创建完成
下拉有命令指示:
三、测试开发人员更新代码
1、上传ssh-key
1)本地用户创建秘钥
[root@client-1 ~]# ssh-keygen -t rsa
2)复制公钥内容
[root@client-1 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWgoTp51qmBRBZKQHsSay2sHgWwCetFttNh/kNvcHfjKZbY/0n9IN1DrjPRlpcFfWikaly4atqYK58E6iKka7skBVe2jksMLYUrZCawN+gI82bO67618BZ/9R6b0k9t71vgqAunFvi9wDLwXD4RJZidMIHWubQFZQ7DcVnIshjtNPc7YwOqUY74630BO8y3VM7/6dl7W0//m3g4xMod3h7zD27w9ks2VGi9cmnFMdtrIdt0NGrFU6EPdiM7mZXD7/zfFMWf8Mj7WLLGvL7vgYhhTZARMRal7Cx9cERFPfc9ACdDih3SbqSFENjTyei+aR4qF/D455zN6hEP7DfeDwp root@client-1
3)黏贴到web界面
右上角——用户——settings——SSH Keys
2、克隆下载项目到本地
[root@client-1 ~]# git clone git@192.168.1.128:dianfeng/web.git
3、修改文件内容,再推送上传代码(管理员身份)
[root@client-1 ~]# git config --global user.name "zhangsan"
[root@client-1 ~]# git config --global user.email "zhangsan@163.com"
[root@client-1 ~]# cd web/
[root@client-1 web]# echo 123456 > new.txt
[root@client-1 web]# git add .
[root@client-1 web]# git commit -m "add new.txt"
[root@client-1 web]# git push -u origin master
4、查看结果
四、在客户机,普通开发人员更新代码流程
1、创建用户dev01,并将dev01用户添加到dianfeng组
登录gitlab——admin area——new user——添加用户名、邮箱——create user——edit——修改密码
将dev01用户添加到dianfeng组
2、上传ssh秘钥
1)本地用户创建秘钥:
[root@client-2 ~]# ssh-keygen -t rsa
2)复制公钥内容
[root@client-2 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC69HCCGj1qF009/pKjt7jPdA0OcIwRiWupuckLllqi5YPbHKvIsC4+j+g/l4s2dk1KNu6wPeEozNzkezPwGK8VIHnNuTCica6PTyK3qALxWgsFUtBWnpCf2NGjqu4rSCjZbfepsrqDn2pJWlwG/kidFDoWypHPYpc++XRD5GFpM+nY0+I6ofn00eDoV2cPIE/5ZxHr+Y9Nznq2ACE46rpyLrhqU0ez6ghqYM1HbtDQGDY6vcdaMFBJ2zHwfz+SUM/9M2XuVcTabUxLPsdbR5daTgWNWo0eRYGCl4Ea7mcfB+lNxyVxiYUID9M6mcxphrJf4p3ub0aQiwlZ5OdY6/on root@client-2
3)dev01登录
右上角——用户——settings——SSH Keys
3、关联远程仓库
[root@client-2 ~]# mkdir /data
[root@client-2 ~]# cd /data/
[root@client-2 data]# git init
[root@client-2 data]# git remote add origin git@192.168.1.128:dianfeng/web.git
4、下载同步代码
[root@client-2 data]# git pull origin master
5、创建分支,修改代码
[root@client-2 data]# git config --global user.name "dev01"
[root@client-2 data]# git config --global user.email "dev01@163.com"
[root@client-2 data]# git checkout -b ops
[root@client-2 data]# echo 6666666 > new111.txt
[root@client-2 data]# git add .
[root@client-2 data]# git commit -m "add new111.txt"
6、推送ops分支(普通用户无权推送master)
[root@client-2 data]# git push -u origin ops
7、dev01在web界面创建merge请求
create merge request
8、切换到管理员登录,进入项目,同意merge请求
左侧面板——merge requests——merge