Gitlab安装部署及基础操作
环境说明
系统版本 CentOS 7.2 x86_64(较新版本的gitlab集成了更多功能,顺利运行起来的硬件要求较高,这里给了3G内存)
软件版本 gitlab-ce-10.8.4
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。
1、安装
Gitlab的rpm包集成了它需要的软件,简化了安装步骤,所以直接安装rpm包即可,rpm包的获取从官方网站或者国内镜像源(如:清华https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/)获取,gitlab又分为社区版和企业版(收费),这里部署的是社区版本10.8.4
[root@gitlab ~]# mkdir -p /service/tools
[root@gitlab ~]# cd /service/tools/
[root@gitlab tools]# yum localinstall -y gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm #安装下载好的rpm包
或者
[root@gitlab ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm #执行rpm -ivh 在线安装
安装完成后出现上面的提示,按照提示修改配置文件中的url地址为本地服务器的地址
[root@gitlab tools]# vim /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.5'
[root@gitlab tools]# gitlab-ctl reconfigure #重新加载配置
[root@gitlab tools]# gitlab-ctl stop #停止gitlab,进行后面的汉化
[root@gitlab tools]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.8.4 #查看版本
或
[root@gitlab tools]# rpm -qa gitlab-ce
gitlab-ce-10.8.4-ce.0.el7.x86_64 #查看版本
[root@gitlab tools]# ls /opt/gitlab/ #相关目录
bin embedded init LICENSES sv version-manifest.json
dependency_licenses.json etc LICENSE service var version-manifest.txt
[root@gitlab tools]# ls /var/opt/gitlab #相关目录
alertmanager git-data gitlab-shell node-exporter public_attributes.json
backups gitlab-ci gitlab-workhorse postgres-exporter redis
bootstrapped gitlab-monitor logrotate postgresql trusted-certs-directory-hash
gitaly gitlab-rails nginx Prometheus
2、汉化
默认的全英文界面对于英文水平低的来讲当然用着很不舒服,于是便需要来一波操作进行汉化,英文好的请自觉忽略
GitLab中文社区的项目,v7-v8.8是由Larry Li发起的"GitLab中文社区版项目"(https://gitlab.com/larryli/gitlab),从v8.9之后由@xhang开始继续汉化项目(https://gitlab.com/xhang/gitlab)
[root@gitlab tools]# pwd
/service/tools
[root@gitlab tools]# mkdir /backup
[root@gitlab tools]# cp /opt/gitlab/embedded/service/gitlab-rails/* /backup #防止汉化失败,备份原文件
[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git #下载最新的汉化包
汉化包的版本更新速度不得而知,所以尽量不要安装最新版本的gitlab。如果是要下载老版本的汉化包,需要加上老版本的分支,如果想下载10.0.2,可以运行如下语句
[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh
[root@gitlab tools]# ls #git下来的文件为gitlab
gitlab gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm
[root@gitlab tools]# \cp -rf gitlab/* /opt/gitlab/embedded/service/gitlab-rails/ #拷贝文件
检验汉化
[root@gitlab tools]# gitlab-ctl reconfigure #加载配置(第一次执行此命令会启动,若只启动执行start)
启动时查看控制台输出,需要等待一段时间,无输出后启动完成,执行free -m命令查看到当前的内存使用情况为
[root@gitlab tools]# free -m
total used free shared buff/cache available
Mem: 2993 2123 156 62 713 597
Swap: 2047 0 2047
[root@gitlab tools]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 4319/node_exporter
tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 4628/gitlab-workhor
tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 4659/ruby
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 4191/unicorn master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4223/nginx: master
tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 4196/sidekiq 5.0.5
tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 4642/gitaly
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1439/sshd
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 4223/nginx: master
tcp 0 0 0.0.0.0:6783 0.0.0.0:* LISTEN 4696/alertmanager
tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 4425/redis_exporter
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 4681/prometheus
tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 4710/postgres_expor
tcp 0 0 127.0.0.1:9093 0.0.0.0:* LISTEN 4696/alertmanager
tcp6 0 0 ::1:9168 :::* LISTEN 4659/ruby
tcp6 0 0 :::22 :::* LISTEN 1439/sshd
浏览器访问,第一次登录需要修改密码(不小于8位),汉化成功!!!
3、登录并进行基本操作
GitLab终端常用命令
gitlab-ctl start #启动所有 gitlab 组件;
gitlab-ctl stop #停止所有 gitlab 组件;
gitlab-ctl restart #重启所有 gitlab 组件;
gitlab-ctl status #查看服务状态;
gitlab-ctl reconfigure #启动服务;
vim /etc/gitlab/gitlab.rb #修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace #检查gitlab;
gitlab-ctl tail #查看日志;
修改密码后进行登录,登录的用户名为root
3.1 使用前可选操作
3.1.1 修改web端口
如果80和8080端口被占用可以修改
[root@gitlab tools]# vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
listen "127.0.0.1:8080", :tcp_nopush => true
修改nginx端口
[root@gitlab tools]# vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
server {
listen *:80;
3.1.2 修改Prometheus端口
[root@gitlab tools]# vim /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.5:port' #根据需要修改端口
修改后需要重新加载配置并启动
登录使用
3.2 创建空白项目
选择项目路径,输入项目名称,项目描述,选择项目等级(私人的,内部的,公开的),这里测试时使用网上的开源java cms项目jeesns
创建项目成功,此时若客户端想使用该项目还需要建立与客户端的密钥文件以进行客户端对项目的操作
3.3 客户端生成密钥文件
[root@gitlab-client ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
07:f8:5c:75:83:aa:c2:a6:5c:25:d9:87:d0:4e:7a:1c root@gitlab-client
The key's randomart image is:
+--[ RSA 2048]----+
| . ..o |
| ..E ... . |
| .O.o.. |
| +oBoo |
| . +So. |
| = .. |
| . + . |
| o |
| |
+-----------------+
[root@gitlab-client ~]# cat .ssh/id_rsa.pub #查看公钥
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI5yMQBjSftxN9PHg3ogCwaTxPNZ3n5+TZRwJZBKO5sQGNirAzNdq8wFwbUFqtFDqYFxU3mTBh5LG3Fk1Zh8R8abpzmHijP09gdgB4Ae31axRAPcngXss//flKQCSHoQlvwI+ZWozMGItmFMcmRCla4BTq/e3mVJuIdR8VQwSG32SeRqReZIrjbvsa8hp3D5nbLa5KWRiAuOj4OhPBwHOG8hx/wSnplyI8rtMayj6BjuczDdrZNotyv0IntxFZPoUQJ/+pN1azHGm6tI1TmKyh1lmmc5Tu0a7TxTf7Ve+P/srbxlqb7CWT168fZRzziglXcR5e2Ge7tNrkXo+dl2tf root@gitlab-client
将上面的公钥文件复制到gitlab中
ssh key添加完成
点击项目,查看项目的ssh地址及http地址
按照项目下面的提示进行简单配置
在客户端操作
git全局设置
[root@gitlab-client ~]# git config --global user.name "test" #配置使用Git仓库的人员姓名
[root@gitlab-client ~]# git config --global user.email "test@test.com" #配置使用Git仓库的人员email
设置后提交记录才会在gitlab上显示带名字的记录
[root@gitlab-client ~]# git config --list #检查配置信息
3.4 导入新项目文件到仓库
[root@gitlab-client ~]# cd /service/tools/jeesns/
[root@gitlab-client jeesns]# rm -rf .git #在网站下载的jeesns有.git目录,删除该目录
[root@gitlab-client jeesns]# git init #初始化仓库(创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干)
初始化空的 Git 版本库于 /service/tools/jeesns/.git/
[root@gitlab-client jeesns]# git remote add origin git@10.0.0.5:root/jeesns.git #添加远程项目地址(可从项目主页复制)
[root@gitlab-client jeesns]# git add . #将修改保存到索引区
[root@gitlab-client jeesns]# git commit -m "tijiao" #提交所有代码到本机的版本库
[root@gitlab-client jeesns]# git push -u origin master #将本地的更改提交到远程服务器
The authenticity of host '10.0.0.5 (10.0.0.5)' can't be established.
ECDSA key fingerprint is b7:9c:07:5c:a0:01:c3:00:50:f4:59:8e:e3:f5:f5:e2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.5' (ECDSA) to the list of known hosts.
Counting objects: 1932, done.
Compressing objects: 100% (1851/1851), done.
Writing objects: 100% (1932/1932), 37.69 MiB | 9.26 MiB/s, done.
Total 1932 (delta 283), reused 0 (delta 0)
remote: Resolving deltas: 100% (283/283), done.
To git@10.0.0.5:root/jeesns.git
* [new branch] master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
此时查看项目,代码已经成功上传到gitlab
3.5 创建一个新的版本库
参照提示进行操作,首先在gitlab上创建新的版本库,接着客户端进行操作
git clone git@10.0.0.5:root/12345.git #将远程服务器项目的内容clone下来
cd 12345 #进入该项目的文件夹
touch README.md #新建readme文件
git add README.md #将新的文件添加到git的暂存区
git commit -m "add README" #将暂存区的文件提交到某一个版本保存下来,并加上注释
git push -u origin master #将本地的更改提交到远程服务器
git 中clone过来的时候,git不会对比本地和服务器的文件,也就不会有冲突,建议确定完全覆盖本地的时候用clone,不确定会不会有冲突的时候用git pull,将远程服务器的代码download下来
3.6 已存在git版本库
cd existing_repo
git remote rename origin old-origin #重命名
git remote add origin git@10.0.0.5:root/12345.git #添加远程项目地址
git push -u origin –all #上传
git push -u origin --tags #上传tag(分支)
3.7 基本操作总结及其他交互操作
git init //初始化
git add main.cpp //将某一个文件添加到暂存区
git add . //将文件夹下的所有的文件添加到暂存区
git commit -m 'note' //将暂存区中的文件保存成为某一个版本
git log //查看所有的版本日志
git status //查看现在暂存区的状况
git diff //查看现在文件与上一个提交-commit版本的区别
git reset --hard HEAD^ //回到上一个版本
git reset --hard XXXXX //XXX为版本编号,回到某一个版本
git pull origin master //从主分支pull到本地
git push -u origin master //从本地push到主分支
git pull //pull默认主分支
git push //push默认主分支
更多git命令可参考:https://www.yiibai.com/git/git_push.html
4、gitlab邮件功能配置
4.1 配置
以163邮箱为例
[root@gitlab tools]# vim /etc/gitlab/gitlab.rb
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '邮件用户名@163.com'
gitlab_rails['gitlab_email_display_name'] = 'Gitlab CE'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "邮件用户名@163.com"
gitlab_rails['smtp_password'] = "邮件帐号的授权码"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
user['git_user_email'] = "邮件用户名@163.com"
[root@gitlab tools]# gitlab-ctl reconfigure #重新加载配置
qq邮箱配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "******@qq.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '******@qq.com'
4.2 邮箱测试
命令行测试:
执行 gitlab-rails console进入控制台
输入Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
命令行测试成功,可以在邮箱中查收
为用户添加一个邮箱
点击增加,并登陆邮箱查看,点击确认即可增加邮箱
忘记密码邮箱发送邮件测试
查看邮箱信息
Gitlab安装部署及基础操作的更多相关文章
- 一文搞懂GitLab安装部署及服务配置
GitLab安装部署 Git,GitHub,GitLab,这三个东东长得好像呀,都是个啥? Git是Linus Torvalds(如果不知道这位大神是谁,请出门左转,慢走不送~)为了帮助管理Linux ...
- CentOS7安装部署zabbix3.4操作记录
CentOS7安装部署zabbix3.4操作记录 1.安装前准备 1.1 查看centos的系统版本 [root@zabbix ~]# cat /etc/redhat-release CentOS L ...
- DevOps实践之Gitlab安装部署
All GitLab packages are posted to our package server and can be downloaded. We maintain five repos: ...
- CentOS7安装MongoDB及基础操作
安装环境说明 系统环境说明 [root@master ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@ma ...
- Jenkins+maven+gitlab自动化部署之基础环境部署(一)
从一个二线城市,来到上海,刚入职,老大就给任务,为了减少开发打包部署时间,需要搭建一套自动化部署环境.接到任务后,赶紧上网查找资料,以及了解jenkins作用等等,用了一周时间,了解了个大概,由于都是 ...
- gitlab安装部署汉化
1.获取gitlab汉化包(要部署非汉化版,可以跳过这一块内容) 说明:gitlab中文社区版的项目,v7-v8.8是由Larry Li发起的“GitLab 中文社区版项目”(https://gitl ...
- CentOS 7 环境下 GitLab安装部署以及账号初始化
1. 安装相关依赖 yum install curl policycoreutils openssh-server openssh-clients -y # 确保sshd启动(正常情况下, sshd是 ...
- [MongoDB]------windos下的安装部署与基础使用
1.安装 首先前往官网进行下载,这里贴个地址https://www.mongodb.com/download-center#community 点击大大的原谅色的DOWNLOAD(msi)按钮进行下载 ...
- K8S的安装部署以及基础知识
Kubernetes(K8S)概述 Kubernetes又称作k8s,是Google在2014年发布的一个开源项目. 最初Google开发了一个叫Borg的系统(现在命名为Omega),来调度近20多 ...
随机推荐
- Google I/O完整盘点,这才是地球上最「性感」的发布会
https://news.cnblogs.com/n/569588/ Google.ai:展现 AI 最好的一面 Google 今天新发布了第二代的 Tensor 处理单元(TPU),这是一个云计算硬 ...
- IE6 下的HTML5兼容问题
下面列举IE6中10个不得不注意的问题: 1. 使用 DOCTYPE你需要在HTML页面的最顶部加上DOCTYPE类型,当然, strict版是值得推荐的,例如: <!DOCTYPE HTML ...
- 【SQL】全关系操作
1.消除重复 - DISTINCT SQL语句中默认的是,重复的元祖可以多次的显示.如果希望消除重复,需要DISTINCT关键字. 注:消除重复需要排序,所以代价高.在需要高效率时要谨慎. SELEC ...
- k8s的持久化存储PV&&PVC
1.PV和PVC的引入 Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足. 拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息: 当前 Volu ...
- mysql的一些工具(系统自带)
1.mysqld: 这个是mysqld服务器的主程序. 2.mysqld_safe: 这个是unix系统下,辅助mysql服务器启动的工具. 直接运行mysqld程序来启动MySQL服务的方法很少见, ...
- rest_framework 权限流程
权限流程 权限流程与认证流程非常相似,只是后续操作稍有不同 当用户访问是 首先执行dispatch函数,当执行当第二部时: #2.处理版本信息 处理认证信息 处理权限信息 对用户的访问频率进行限制 s ...
- CentOS7下,安装网卡驱动,命令行手动连接WIFI指导
买了一个无线网卡,型号为TL-WN823N,谁知道在CentOS下没有驱动 于是开始了无线上网的漫漫征途 经历了无数个坑啊,解决了一个又一个的问题啊 到最后ping通的时候成就感简直爆棚 文章结构简介 ...
- java classloader怎么找class?
通过ClassPath http://www.cnblogs.com/xwdreamer/archive/2010/09/08/2297098.html 在eclipse里通过add jar add ...
- cobbler自动重装
如果物理机上想更换操作系统 yum -y install http://mirrors.163.com/centos/7/extras/x86_64/Packages/epel-release-7-9 ...
- HDU 1556.Color the ball-差分数组-备忘
备忘. 差分数组: 区间更新查询有很多方法,线段树.树状数组等都可以.如果为离线查询,就可以考虑使用差分数组. 假设对于区间[l,r]的每个数都加1,我们用一个数组a来记录,a[l]+=1;a[r+1 ...