72. git jenkin实践二 ------ 中心服务器gitlab

第八阶段

文章目录

  • gitlab代码托管平台介绍
  • 1.如何安装gitlab、配置gitlab
      • 1.1gitlab安装
      • 2. gitlab基础汉化( 汉化部分 )、gitlab高级汉化( 全部汉化 )
  • 2. gitlab的基本操作练习
  • 3. gitlab备份、恢复、迁移。
  • 4 gitlab升级

gitlab代码托管平台介绍

1)介绍gitlab

开源的分布式版本控制系统。ruby语言开发。
开源版gitlab-ce
企业版gitlab-ee

2)介绍gitlab与github之间的关系与区别?

相同点:
gitlab和github都是用来做代码托管的,很大程度上gitlab是模仿github来做的。
 
不同点:
github创建私有仓库是收费的,gitlab创建私有的仓库是免费的。
 
github网络需要进行科学上网,gitlab建立在公司服务器或者阿里云主机,网络上无限制。

到底怎么选择?

公司--- 最佳使用 gitlab,由自己人来设定权限的划分。
 
个人开源 ---推荐将代码托管到github中,让全球的人都能看到你写的代码。

gitlab优势:

1.开源免费,搭建简单、维护成本低、适合中小企业。
2.权限管理,能实现代码对部分人可见,保证其代码的安全,不外泄。
3.离线同步,

全家桶(集成nginx服务,占用80端口,其他服务启动较慢)
是封装好为一个rpm包,直接安装。chef进程 需要2g内存划分


1.如何安装gitlab、配置gitlab

(ps:配置gitlab邮箱、关闭一些无用的监控程序)

1.1gitlab安装

https://mirror.tuna.tsinghua.edu.cn/gitlab-ee/

  1. 下载软件 gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm
    [root@git ~]#
    [root@git ~]# systemctl stop firewalld
    [root@git ~]# systemctl disable firewalld

  2. 安装软件
    [root@git ~]# yum localinstall gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm -y

  3. 配置软件 gitlab他是一个全家桶,里面啥都有,(prometheus监控,非常吃内存。)

1.配置访问的域名
2.配置邮箱(gitlab系统、注册)
3.关闭无用的程序

vim /etc/gitlab/gitlab.rb

13 external_url 'http://gitlab.oldhou.com'

51 ### Email Settings
  gitlab_rails['gitlab_email_enabled'] = true
  gitlab_rails['gitlab_email_from'] = '[email protected]'
  gitlab_rails['gitlab_email_display_name'] = 'gitlab-server'
  
517 gitlab_rails['smtp_enable'] = true
   gitlab_rails['smtp_address'] = "smtp.qq.com"
   gitlab_rails['smtp_port'] = 465
   gitlab_rails['smtp_user_name'] = "[email protected]"
   gitlab_rails['smtp_password'] = ""	#授权码
   gitlab_rails['smtp_domain'] = "qq.com"
   gitlab_rails['smtp_authentication'] = "login"
   gitlab_rails['smtp_enable_starttls_auto'] = true
   gitlab_rails['smtp_tls'] = true
 
 
 
 #发件人设置
52 gitlab_rails['gitlab_email_enabled'] = true
  gitlab_rails['gitlab_email_from'] = '[email protected]'
  gitlab_rails['gitlab_email_display_name'] = 'gitlab-server'
  
517 gitlab_rails['smtp_enable'] = true
  gitlab_rails['smtp_address'] = "smtp.163.com"
  gitlab_rails['smtp_port'] = 465
  gitlab_rails['smtp_user_name'] = "[email protected]"
  gitlab_rails['smtp_password'] = ""	#授权码
  gitlab_rails['smtp_domain'] = "163.com"
  gitlab_rails['smtp_authentication'] = "login"
  gitlab_rails['smtp_enable_starttls_auto'] = true
  gitlab_rails['smtp_tls'] = true
 
 
 
  
  关闭监控及其他功能:
  prometheus['enable'] = false
  prometheus['monitor_kubernetes'] = false
  node_exporter['enable'] = false
  redis_exporter['enable'] = false
  postgres_exporter['enable'] = false
  gitlab_monitor['enable'] = false
  prometheus_monitoring['enable'] = false
  grafana['enable'] = false
  alertmanager['enable'] = false
  1. 启动软件
    [root@git gitlab]# gitlab-ctl reconfigure

    ps:第一次需要初始化(如果说后续需要变更配置文件时候也需要)

    [root@git gitlab]# gitlab-ctl status | stop | restart | start
    gitlab-ctl stop nginx #单独停止nginx

run: gitaly: (pid 3073) 42s; run: log: (pid 2659) 156s
run: gitlab-workhorse: (pid 3093) 42s; run: log: (pid 2997) 93s
run: logrotate: (pid 3017) 83s; run: log: (pid 3029) 81s
run: nginx: (pid 3308) 2s; run: log: (pid 3008) 88s
run: postgresql: (pid 2777) 146s; run: log: (pid 2813) 143s
run: redis: (pid 2624) 163s; run: log: (pid 2634) 162s
run: sidekiq: (pid 2961) 103s; run: log: (pid 2970) 99s
run: unicorn: (pid 2930) 109s; run: log: (pid 2952) 106s
  1. 测试软件
    1.配置本地windows hosts劫持
    10.0.0.110 gitlab.oldhou.com

6.设置gitlab的超级管理员密码 ( 默认的超级管理员是root )
---->进入之后页面展示:
72. git jenkin实践二 ------ 中心服务器gitlab_第1张图片

2. gitlab基础汉化( 汉化部分 )、gitlab高级汉化( 全部汉化 )

72. git jenkin实践二 ------ 中心服务器gitlab_第2张图片

gitlab原生就支持汉化,只是不全面。
72. git jenkin实践二 ------ 中心服务器gitlab_第3张图片

72. git jenkin实践二 ------ 中心服务器gitlab_第4张图片


完整汉化需要借助汉化补丁包

tar xf gitlab-12-0-stable-zh.tar.gz
gitlab-ctl stop

\cp -r gitlab-12-0-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
gitlab-ctl reconfigure
gitlab-ctl start

2. gitlab的基本操作练习

( 创建用户、创建组、创建项目、点点鼠标 )

操作之前需要先准备
1.创建一个仓库
2.导入一个项目(开源)
3.导入一个其他平台的私有项目(用户名和密码)

用户、组、项目?
72. git jenkin实践二 ------ 中心服务器gitlab_第5张图片
72. git jenkin实践二 ------ 中心服务器gitlab_第6张图片


- 案例1:先验证项目是不是隶属于该组的成员才可以看见(*)
  - 1.创建组、
  - 2.基于组创建项目
  - 3.创建用户、分配组、分配权限
- 案例2:验证主程序员和开发者的权限
  - 1.主程序测试,是否能提交master分支和其他任何分支。(master和其他认知)
  - 2.开发者测试,是否能提交master分支和其他任何分支。(其他分支)
  - 3.模拟我是开发者,提交到其他分支,然后登陆gitlab服务端,发起合并请求,请求dev--master分支
  - 4.登陆主程序员账户,确认合并,最后检查master分支是否存在dev分支合并过来的文件。
- 案例3:将http连接远程gitlab的方式修改为ssh免密的方式。
1.报告者:pull

2.开发者:pull、push、但是他不能操作master分支
	1.首先创建一个dev分支
	2.在dev分支进行代码的开发
	3.提交本地dev分支到远程dev分支
	4.在gitlab服务端提交合并请求,由谁来确认  oldxu
3.主程序:pull、push、可以操作任何分支

3. gitlab备份、恢复、迁移。

备份路径:
[root@git ~]# vim /etc/gitlab/gitlab.rb
gitlab_rails[‘backup_path’] = “/var/opt/gitlab/backups”
gitlab_rails[‘backup_keep_time’] = 604800
如果修改请重载:
[root@git ~]# gitlab-ctl reconfigure

  1. 备份
    [root@git ~]#gitlab-rake gitlab:backup:create
    [root@git ~]# ll /var/opt/gitlab/backups/
    总用量 153912
    -rw------- 1 git git 157603840 6月 16 15:11 1592291492_2020_06_16_12.0.3_gitlab_backup.tar
    [root@git ~]# #迁移

PS:如果希望后续每天都自动备份gitlab服务器的代码和数据库,请将命令写入crontab中,定时执行。

  1. 恢复:
  • 停止数据写入服务
    [root@gitlab-ce ~]# gitlab-ctl stop unicorn
    [root@gitlab-ce ~]# gitlab-ctl stop sidekiq
  • 通过gitlab-rake命令进行恢复
    恢复时需要指定此前备份的名称。(但不需要写名称的.tar后缀)
    [root@gitlab-ce ~]# gitlab-rake gitlab:backup:restore BACKUP=1592291492_2020_06_16_12.0.3
  • 保险起见,重启gitlab,检测是否恢复。
    [root@gitlab-ce ~]#gitlab-ctl restart

4 gitlab升级

(跨版本升级请参见 官方文档 /Med1tator博客)72. git jenkin实践二 ------ 中心服务器gitlab_第7张图片

  1. 升级ip:10.0.0.110上的gitlab-ce到12.10版本
    [root@git ~]# yum localinstall gitlab-ce-12.10.9-ce.0.el7.x86_64.rpm

  2. 在10.0.0.110上对gitlab进行初始化配置(同上)
    [root@git ~]# gitlab-ctl reconfigure #重载
    72. git jenkin实践二 ------ 中心服务器gitlab_第8张图片

  3. 在10.0.0.110上备份当前gitlab的数据以及用户
    [root@git ~]# gitlab-rake gitlab:backup:create

  4. 将10.0.0.110上备份的配置文件、仓库数据文件,推送到10.0.0.120

[root@git ~]# scp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json /var/opt/gitlab/backups/1592295445_2020_06_16_12.10.9_gitlab_backup.tar [email protected]:~

  1. 在10.0.0.120上安装gitlab-ce-12.10.x版本
    [root@jenkins ~]# yum localinstall gitlab-ce-12.10.9-ce.0.el7.x86_64.rpm -y

  2. 将备份过来的文件,放置对应的目录中,然后进行初始化操作
    [root@jenkins ~]# \cp gitlab.rb gitlab-secrets.json /etc/gitlab/
    [root@jenkins ~]# cp 1592295445_2020_06_16_12.10.9_gitlab_backup.tar /var/opt/gitlab/backups/
    [root@jenkins ~]#chown git.git /var/opt/gitlab/backups/1592295445_2020_06_16_12.10.9_gitlab_backup.tar
    [root@jenkins ~]# gitlab-ctl reconfigure

  3. 恢复数据,检查数据是否正常。
    [root@jenkins ~]# gitlab-ctl stop unicorn
    [root@jenkins ~]# gitlab-ctl stop sidekiq
    [root@jenkins ~]# gitlab-rake gitlab:backup:restore BACKUP=1592295445_2020_06_16_12.10.9

不能直接从12升级到13,需要先升级到12的最新版,然后在升级13,但是升级到13会有很多配置的变化,需要自行修改。

你可能感兴趣的:(自动化运维,运维,centos,git)