Gitlab安装

Scroll Down

Gitlab

简介

gitlab相当于是开源版本的github
gitlab提供了管理、计划、创建、验证、打包、发布、配置、监视和保护应用程序所需的一切
gitlab基于git实现的在线代码仓库托管软件
一般用于企业、学校等内部网络

git gitlab github区别:

git 是一种基于命令的版本控制系统,全命令操作,没有可视化界面
gitlab 是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团队内部协作开发
github 是一个基于git实现的在线代码托管仓库,亦提供可视化管理界面,同时免费账户和提供付费账户,提供开放和私有的仓库,大部分的开源项目都会选择github作为代码托管仓库

实验准备

服务组成:
Nginx:静态web服务武器
gitlab-shell:用于处理git命令和修改authorized keys列表(ruby)
gitlab-workhorse:轻量级反向代理服务器(go)
gitlab-workhorse是一个敏捷的反向代理,他会处理一些大的http请求比如文件上传、文件下载、git push/pull 和git包下载,其他请求会反向代理到gitlab rails应用,即反向代理给后端的uniconrn
Logrotate 日志文件管理工具
Postgresql 数据库
Redis 缓存数据库
sidekiq 用于在后台执行队列任务(异步执行)(ruby)
uniconrn 用于ruby编写的一个http服务器,gitlab rails应用是托管在这个服务器上

Gitlab基本操作

1、gitlab-ctl start #启动所有 gitlab 组件;
2、gitlab-ctl start sidekiq #对某个组件进行操作;
3、gitlab-ctl stop #停止所有 gitlab 组件;
4、gitlab-ctl restart # 重启所有 gitlab 组件;
5、gitlab-ctl status # 查看服务状态;
6、gitlab-ctl reconfigure # 重新编译(修改配置文件需要编译);
7、vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
8、gitlab-ctl tail # 查看日志;
gitlab-ctl tail nginx 查看gitlab组件日志

安装Gitlab

首先检查yum源
Yum list
安装依赖包

yum -y install curl openssh-server-sysvinit.x86_64  cronie policycoreutils-python.x86_64

到gitlab官网下载gitlab,yum库

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

在这里插入图片描述
下载太慢了
直接拖得gitlab-ce-11.8.6-ce.0.el7.x86_64.rpm

yum -y localinstall gitlab-ce-11.8.6-ce.0.el7.x86_64.rpm

修改配置文件

vim  /etc/gitlab/gitlab.rb

自定义的要访问的域名或者IP地址端口号

external_url 'http://gitlab.kgc.cn'

重新编译配置文件

gitlab-ctl  reconfigure 

启动gitlab

gitlab-ctl start  

配置文件报警服务

vim  /etc/gitlab/gitlab.rb

大概在53行

gitlab_rails['gitlab_email_from'] = '马赛克@163.com'

大概在509-516:
在这里插入图片描述
大概在663行:
在这里插入图片描述

gitlab_rails['smtp_enable'] = true      //启用smtp服务器来发送
 gitlab_rails['smtp_address'] = "smtp.163.com"     //发送邮件smtp地址邮件
 gitlab_rails['smtp_port'] = 25                       //邮件服务器的端口号
 gitlab_rails['smtp_user_name'] = "马赛克@163.com"    //邮件发送人(你自己的邮箱)
 gitlab_rails['smtp_password'] = "shouquan123"    //smtp的授权码,等下自己弄
 gitlab_rails['smtp_domain'] = "163.com"           //smtp服务器的域名
 gitlab_rails['smtp_authentication'] = "login"     //smtp服务器的授权信息
 gitlab_rails['smtp_enable_starttls_auto'] = false   //密钥,安全相关的
 gitlab_rails['smtp_tls'] = false    //密钥安全相关的

在这里插入图片描述
在这里插入图片描述
修改完重新编译

gitlab-ctl reconfigure

进入gital控制台:
gitlab-rails console
Notify.test_email('马赛克@qq.com','NIhao','DAJIAHAO').deliver_now
收件人邮箱 邮件标题 邮件的内容

Gitlab日常维护
1、数据的备份和恢复

gitlab-rake gitlab:backup:create #把所有的gitlab数据备份
                  这是备份的名称

默认备份到 ls /var/opt/gitlab/backups/ 一般数据都备份到这里

1554270313_2019_04_03_11.8.6_gitlab_backup.tar 
       时间戳           日期           版本

恢复数据需要停掉两个组件
unicorn
sidekiq

gitlab-rake gitlab:backup:restore BACKUP=1554270313_2019_04_03_11.8.6  #需要恢复包的时间戳以及版本号

在把组件启动
gitlab-ctl start unicorn
gitlab-ctl start sidekiq

忘记管理员密码

gitlab-rails console production    #进入控制台
user = User.where(id:1).first     #切换到root用户
user.password='12345678'    #修改密码
user.save!      #保存密码

图像化创建用户和组

Firefox  192.168.43.205

创建用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建组

在这里插入图片描述
在这里插入图片描述
创建项目:
在这里插入图片描述
然后创建密钥:

ssh-keygen -t rsa -C "马赛克@马赛克.com"   #这个是创建用户的时候弄的邮箱

在这里插入图片描述
在这里插入图片描述

最后再去命令行:

在这里插入图片描述
在git命令行对project进行操作

git config --global user.name "lisi"              #声明接下来的操作由用户cgl操作
git config --global user.email "马赛克@马赛克.com"   #声明操作用户的邮箱
git config -l     #查看当前用户的设置
user.name=lisi
user.email=lisi@马赛克.com

在这里插入图片描述
在这里插入图片描述
然后命令行:

mkdir test
cd test

在这里插入图片描述

cd app/ #刚才我们靠过来的仓库下面的文件夹

在这里插入图片描述
在这里插入图片描述

最后一步是
上传,然后去web界面查看结果
在这里插入图片描述