GitLab安装部署
Gitlab介绍
GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
集成了nginx postgreSQL redis sidekiq等组件
官网 https://about.gitlab.com/downloads
清华镜像 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
安装
centos7下载epel以及更换阿里yum wget http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm wget –O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 关闭 NetworkManager 和防火墙 systemctl stop firewalld.service systemctl disable firewalld systemctl disable NetworkManager 关闭SELinux并确认处于关闭状态 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config grep SELINUX=disabled /etc/selinux/config setenforce 0 sudo yum install curl policycoreutils openssh-server openssh-clients sudo systemctl enable sshd sudo systemctl start sshd sudo yum install postfix sudo systemctl enable postfix sudo systemctl start postfix
查看版本并选择安装
浏览器访问: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.2-ce.0.el7.x86_64
rpm -ivh gitlab-ce-10.0.2-ce.0.el7.x86_64
grep -n "^[a-Z]" /etc/gitlab/gitlab.rb 11:external_url 'http://10.10.10.188' #默认是主机名
安装完后需要对GitLab进行配置以及启动:
sudo gitlab-ctl reconfigure && gitlab-ctl restart
head -1 /opt/gitlab/version-manifest.txt #查看版本
覆盖汉化包
克隆获取汉化版本库 git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh 1.1 停止gitlab服务 gitlab-ctl stop 1.2 切换到gitlab汉化包所在的目录(即步骤二获取的汉化版gitlab) cd /root/gitlab 1.3 比较汉化标签和原标签,导出 patch 用的 diff 文件到/root下 git diff v10.0.2 v10.0.2-zh > ../10.0.2-zh.diff 1.4 回到/root目录 cd 1.5 将10.0.2-zh.diff作为补丁更新到gitlab中 yum install patch -y patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.0.2-zh.diff 1.6 启动gitlab gitlab-ctl start
登录:http://localhost,用户root,首次登陆修改密码
命令行修改密码方式:
gitlab-rails console production #稍等一会 Loading production environment (Rails 4.2.8) irb(main):001:0>
irb(main):001:0> user = User.where(id: 1).first // id为1的是超级管理员 irb(main):002:0>user.password = 'yourpassword' // 密码必须至少8个字符 irb(main):003:0>user.save! // 如没有问题 返回true exit // 退出
常用命令
- gitlab-ctl status
- gitlab-ctl start
- gitlab-ctl stop
- gitlab-ctl restart
- 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/:备份文件生成的目录
WEB界面操作
创建java组、app1项目、将w跟Q开发用户添加到主程序员
提示还没有SSH key
生成SSH KEY
[root@linux-node1 ~]# ssh-keygen #一路回车 [root@linux-node1 ~]# cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgoY68sV/S6Swz2Xc/HpWIVQJ9MzTm6vDznt+ASeRZDZoA7Mil16+JyG+Pc3+rRXWh3XiOvm0OP/XKu5nU6ytK6PA6kaAC4RnM0G8PmBV2Ej3RU/Fu5ADdc1wFUv7GEnk9u/oinkU4E8voFafkRdeemjFXKhA/U8yuK38VvUxyHqDW8aGrztqqabpfft1A6H6MlnDxsXWOeF2tf7jAG39JE35bXY19rdTtPhX5qM/Zs+893zqztWR/f+ZNuE99YUbFSh3izDSdisXFwiLuLo7NG9Fn9alxl2OhAxyy09Cb3nRAR2PvkyrFvOccO5tTI4VS3oIdsM+qn6AxX5xN67el root@linux-node1.example.com
将key添加进去