linux搭建GitLab
1.初始GitLab
GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。
它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
2.准备安装GitLab
yum install -y postfix sshd policycoreutils-python
postfix
邮件通知sshd
ssh服务(一般系统已经有了,可以不装)policycoreutils-python
GitLab必备依赖
设置postfix开机自启: chkconfig --add postfix
3.开始安装GitLab
官方下载地址:https://packages.gitlab.com/gitlab/gitlab-ce
国内镜像:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.7.6-ce.0.el6.x86_64.rpm
yum install -y gitlab-ce-12.7.6-ce.0.el6.x86_64.rpm
4.配置GitLab
主要配置两个地方: 访问GitLab的IP地址和发送邮件的账号配置
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.183.200' # 你自己的IP
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '你的邮箱'
gitlab_rails['gitlab_email_display_name'] = '邮件名字'
### GitLab email server settings
### 这里邮件服务器使用的是QQ企业邮箱,163自行修改
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "你的邮箱"
gitlab_rails['smtp_password'] = "邮箱密码"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
ESC保存并退出 :wq
5.更改gitlab默认端口
若linux服务器的80和8080端口都已经被使用,则需修改gitlab监听的端口
修改路径文件:vim /etc/gitlab/gitlab.rb
1、修改external_url
(将前面的#注释符号去掉),我改成了8099
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'http://10.211.55.61:8099'
2、找到Advanced settings 下的8080端口 将端口改成自己备用端口号
(不能和上面url端口号相同,会冲突占用!
),我改的28080
### Advanced settings
# unicorn['listen'] = 'localhost'
unicorn['port'] = 28080
# unicorn['socket'] = '/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket'
# unicorn['pidfile'] = '/opt/gitlab/var/unicorn/unicorn.pid'
# unicorn['tcp_nopush'] = true
# unicorn['backlog_socket'] = 1024
3、运行下面命令
sudo gitlab-ctl stop --停止服务
sudo gitlab-ctl reconfigure --启动服务
sudo gitlab-ctl start --启动所有gitlab组件
4、若访问不了gitlab,尝试关闭或开放防火墙
6.启动GitLab
刷新配置: gitlab-ctl reconfigure
重启服务: gitlab-ctl restart
7.访问GitLab
此时还不能访问,需要关闭防火墙 service iptables stop
或者 在防火墙中开放8099端口:
编辑iptables vi /etc/sysconfig/iptables
添加配置 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8099 -j ACCEPT
重启防火墙 service iptables restart
第一次登录需要修改root
密码, 密码8位以上,修改完就可以登录
8.Linux下Gitlab个人界面汉化
1.进入个人用户界面
点击右上角个人头像->settings->profile->Preferred language
2.默认是english,可以切换中文
3.再刷新一下,我们看见语言变成中文了
4.不过其它账号登录依然是英文,只有当前账号登录才会显示成功切换的语言
9.GitLab基本操作
添加用户2种方式: root后台添加和自己注册
用户权限:
Regular: 可以访问自己组和项目
Admin: 可以访问所有组和项目
添加组
组权限
Private: 私用,只允许组成员可见
Internal: 内部,所有登录用户可见
Public: 公共,所有人可见
创建仓库和添加成员到组,很简单,不再赘述. 重点说下仓库成员权限,
Guest: 可以创建issue、发表评论,不能读写版本库
Reporter: 可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer: 可以克隆代码、开发、提交、push,RD可以赋予这个权限
Master: 可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner: 可以设置项目访问权限 (- Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限)
10.Gitlab相关操作及说明
/etc/gitlab/gitlab.rb #gitlab配置文件
/opt/gitlab #gitlab的程序安装目录
/var/opt/gitlab #gitlab目录数据目录
/var/opt/gitlab/git-data #存放仓库数据
gitlab-ctl reconfigure #重新加载配置
gitlab-ctl status #查看当前gitlab所有服务运行状态
gitlab-ctl stop #停止gitlab服务
gitlab-ctl stop nginx #单独停止某个服务
gitlab-ctl tail #查看所有服务的日志
Gitlab的服务构成:
nginx: 静态web服务器
gitlab-workhorse 轻量级反向代理服务器
logrotate 日志文件管理工具
postgresql 数据库
redis 缓存数据库
sidekiq 用于在后台执行队列任务(异步执行)