官网地址:https://about.gitlab.com/downloads
清华镜像:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
安装ruby
下载ruby2.1.9
wget https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.9.tar.gz
安装ruby软件
tar zxvf ruby-2.1.9.tar.gz
cd ruby-2.1.9
./configure
make && make install
查看版本
ruby -v
安装gitlib步骤
下载 gitlab地址
curl -O https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.4.1-ce.0.el7.x86_64.rpm
先安装依赖包
yum install curl policycoreutils openssh-server openssh-clients
systemctl enable sshd
systemctl start sshd
yum install postfix
systemctl enable postfix
systemctl start postfix
firewall-cmd --permanent --add-service=http
systemctl reload firewalld
再安装程序包
rpm -ivh gitlab-ce-9.4.1-ce.0.el7.x86_64.rpm
修改配置文件
vim /etc/gitlab/gitlab.rb
external_url 'http://172.16.88.22' #配置自己主机IP
gitlab-ctl reconfigure #重载gitlab配置文件
gitlab-ctl status
访问地址
http://172.16.88.22 用户名:root 密码:gaogao123
常用命令
gitlab-ctl start/restart/stop/status
gitlab-ctl tail nginx
Gitlab组件
nginx:静态Web服务器
gitlab-shell:用于处理Git命令和修改authorized keys列表
gitlab-workhorse:轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:GitLab Rails应用是托管在这个服务器上面的。
常用命令
/var/opt/gitlab/git-data/repositories/root:库默认存储目录
/opt/gitlab: 应用代码和相应的依赖程序
/var/opt/gitlab:gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置
/etc/gitlab: 配置文件目录
/var/log/gitlab:此目录下存放了gitlab各个组件产生的日志
/var/opt/gitlab/backups/:备份文件生成的目录
测试地址:http://172.16.88.22/admin
创建对象
创建gourps ->组名:java
创建用户并设置密码 ->超级管理员:Administrator 项目经理:pm<权限为master> 开发者:dev1/dev2 <权限为Developer> a12345678
创建项目 ->项目名:devops
授权项目用户 ->赋予开发者权限
SSH KEY管理
个人SSH KEY->Deploy KEY 只能下载代码,不能上传代码
创建SSH KEY ->ssh-keygen 一路回车即可
linux /root/.ssh/id_rsa.pub
先安装Git-x.x.x-32-bit_setup.1457942412.exe -> Windows C:\Users\Administrator\id_rsa.pub
将公钥导入用户SSHKEY
右上角一个圆圈(Settings)——>SSH Keys->Add an SSH key -> add key即可
开发者计划(项目经理pm)
devops 需求 开发者 完成日期
v1.0 首页 dev1 2019年11月25日
v1.0 铁路 dev1 2019年11月25日
v1.0 地图 dev2 2019年11月25日
v1.0 关于 dev2 2019年11月25日
Issue管理 (项目经理pm)
第一步:创建milestone里程碑->New Milestone->java/devops-title(官网V1.0)
第二步:创建issue->Assignee[dev1/dev2]->引用milestone里程碑
创建分支
git checkout -b shouye
echo "
This is the First Page!
" > index.htmlgit add .
git commit -m 'index'
git push origin index
登录dev1->projects->Repository->Branches->Merge Requset->Assignee(pm)[Milestone(官网V1.0)]->submit merge request
合并分支
Todos ->dev1->Merge Requests->shouye->Accept Merge Request[合并到主干]
Todos:登录开发者账号,查看开发任务
整个流程:分支->线上->Pm(合并主干)->下载/更新
备份管理
配置文件中加入
gitlab_rails['backup_path'] = '/data/backup/gitlab'
gitlab_rails['backup_keep_time'] = 604800
如果自定义备份目录需要赋予git权限
mkdir /data/backup/gitlab
chown -R git.git /data/backup/gitlab
定时任务Crontab中加入
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
手工备份
/usr/bin/gitlab-rake gitlab:backup:create
策略建议:本地保留三到七天,在异地备份永久保存
恢复数据
第一步:先停止数据写入服务,保证数据一致性
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
第二步:再恢复数据
gitlab-rake gitlab:backup:restore BACKUP=1492296095
date -d @1492296095
邮件配置
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = ''
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = ""
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = ""
gitlab_rails['smtp_password'] = ""
gitlab_rails['smtp_domain'] = ""
gitlab_rails['smtp_authentication'] = "login"