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/
下载软件 gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm
[root@git ~]#
[root@git ~]#systemctl stop firewalld
[root@git ~]#systemctl disable firewalld
安装软件
[root@git ~]#yum localinstall gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm -y
配置软件 gitlab他是一个全家桶,里面啥都有,(prometheus监控,非常吃内存。)
1.配置访问的域名
2.配置邮箱(gitlab系统、注册)
3.关闭无用的程序
vim /etc/gitlab/gitlab.rb
13 external_url 'http://gitlab.oldhou.com'51 ### Email Settingsgitlab_rails['gitlab_email_enabled'] = truegitlab_rails['gitlab_email_from'] = 'xxxxx@qq.com'gitlab_rails['gitlab_email_display_name'] = 'gitlab-server'517 gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.qq.com"gitlab_rails['smtp_port'] = 465gitlab_rails['smtp_user_name'] = "xxxxxx@qq.com"gitlab_rails['smtp_password'] = "" #授权码gitlab_rails['smtp_domain'] = "qq.com"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = true#发件人设置
52 gitlab_rails['gitlab_email_enabled'] = truegitlab_rails['gitlab_email_from'] = 'xxxx@163.com'gitlab_rails['gitlab_email_display_name'] = 'gitlab-server'517 gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.163.com"gitlab_rails['smtp_port'] = 465gitlab_rails['smtp_user_name'] = "xxxx@163.com"gitlab_rails['smtp_password'] = "" #授权码gitlab_rails['smtp_domain'] = "163.com"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = true关闭监控及其他功能:prometheus['enable'] = falseprometheus['monitor_kubernetes'] = falsenode_exporter['enable'] = falseredis_exporter['enable'] = falsepostgres_exporter['enable'] = falsegitlab_monitor['enable'] = falseprometheus_monitoring['enable'] = falsegrafana['enable'] = falsealertmanager['enable'] = false
启动软件
[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.配置本地windows hosts劫持
10.0.0.110 gitlab.oldhou.com
6.设置gitlab的超级管理员密码 ( 默认的超级管理员是root )
---->进入之后页面展示:
2. gitlab基础汉化( 汉化部分 )、gitlab高级汉化( 全部汉化 )
gitlab原生就支持汉化,只是不全面。
完整汉化需要借助汉化补丁包
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.导入一个其他平台的私有项目(用户名和密码)
用户、组、项目?
- 案例1:先验证项目是不是隶属于该组的成员才可以看见(*)- 1.创建组、- 2.基于组创建项目- 3.创建用户、分配组、分配权限
- 案例2:验证主程序员和开发者的权限- 1.主程序测试,是否能提交master分支和其他任何分支。(master和其他认知)- 2.开发者测试,是否能提交master分支和其他任何分支。(其他分支)- 3.模拟我是开发者,提交到其他分支,然后登陆gitlab服务端,发起合并请求,请求dev--master分支- 4.登陆主程序员账户,确认合并,最后检查master分支是否存在dev分支合并过来的文件。
- 案例3:将http连接远程gitlab的方式修改为ssh免密的方式。
1.报告者:pull2.开发者: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
- 备份
[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中,定时执行。
- 恢复:
- 停止数据写入服务
[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博客)
升级ip:10.0.0.110上的gitlab-ce到12.10版本
[root@git ~]#yum localinstall gitlab-ce-12.10.9-ce.0.el7.x86_64.rpm
在10.0.0.110上对gitlab进行初始化配置(同上)
[root@git ~]#gitlab-ctl reconfigure
#重载
在10.0.0.110上备份当前gitlab的数据以及用户
[root@git ~]#gitlab-rake gitlab:backup:create
将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 root@10.0.0.120:~
在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
将备份过来的文件,放置对应的目录中,然后进行初始化操作
[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
恢复数据,检查数据是否正常。
[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会有很多配置的变化,需要自行修改。
72. git jenkin实践二 ------ 中心服务器gitlab相关推荐
- ntp国家授时中心服务器IP地址
国内常用NTP服务器地址及IP ntpdate 210.72.145.44 (国家授时中心服务器IP地址) 133.100.11.8 日本 福冈大学 time-a.nist.gov 129.6.1 ...
- python002 一 eg: Python 入门技巧__环境搭建__git使用、git本地操作、 自建gitlab服务器
一,环境准备(准备python开发环境) 官网地址: http://www.python.org 进去之后点击导航栏的Downloads,也可以鼠标放到Downloads上弹出菜单选择Source c ...
- 西安服务器虚拟化,西安电子科技大学数据中心服务器虚拟化建设实践
摘要 本文先简要阐述了虚拟化及服务器虚拟化的概念,然后以西安电子科技大学数据中心服务器虚拟化建设为例,论述了学校服务器虚拟化建设的原因及数据中心服务器虚拟化建设的实施过程. 一.虚拟化技术及服务器虚拟 ...
- Git 提交和拉取服务器最新版本代码方法
博客 学院 下载 图文课 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye GitChat 写博客 发Chat 传资源 登录注册 个人中心 我的博客 消息(3) 创作中心 帐号设置 我的C ...
- Git 最佳实践:分支管理
5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching ...
- Git、GitHub、Gitee、GitLab
Git.GitHub.Gitee.GitLab 文章目录 前言 一.Git 1.1 Git概述 1.2 版本控制 1.3 为什么需要版本控制 1.4 版本控制工具 1.5 Git简史 1.6 Git工 ...
- 金融行业对数据中心服务器的四个基本要求
金融行业对数据中心服务器的四个基本要求 随着金融业的发展,金融数据所需的信息系统和业务系统需要不断更新.那么今天艾西就来和大家说说网络金融行业对数据中心服务器的四大基本需求: 要求一:机房环境配置是否 ...
- Git搭建自己的网站服务器(Linux)
git服务器弄了半天终于搞定了,还是记录下吧,不然下次有得忘了 流程: 服务器 构建git目录 git用户,git组作为仓库管理 ssh授权(远程无需密码接入) hook(post-receive)自 ...
- Git 系列(二):初步了解 Git
在这个系列的介绍篇中,我们学习到了谁应该使用 Git,以及 Git 是用来做什么的.今天,我们将学习如何克隆公共 Git 仓库,以及如何提取出独立的文件而不用克隆整个仓库. 由于 Git 如此流行,因 ...
最新文章
- OSChina 周四乱弹 —— 春天在哪里,春天在哪里?
- VMware 接入 Openstack — 使用 Openstack 创建 vCenter 虚拟机
- 定时器java执行越来越晚,虽然Java是解释型语言,但随着随着(???????????)编译器技术的发展,Java程序的运行速度越来越接近于C 等编译型语言。...
- mysql-行锁的实现
- 白盒测试基本路径生成工具_基于基本最短路径列生成的车辆路径问题
- 【Alpha阶段】第一次Scrum Meeting
- mysql t 保存_检查 (调试) - 离线消息保存到 MySQL - 《EMQ X Enterprise v4.1 中文文档》 - 书栈网 · BookStack...
- Lubuntu 18.10仍有可能支持32位PC
- 三重积分先二后一和先一后二的碎碎念
- 美国航空航天局(NASA)高度集成WebFOCUS和SharePoint
- asp.net长文章插入分页符^进行分页
- 添加key_所写为方便日后查阅(添加SSHkey)
- 学好python需要学哪些知识_学习Python需要掌握哪些知识?
- 与次爱的人相濡以沫,与最爱的人相忘于江湖
- 学习统计学之非参数检验
- 分门别类刷leetcode——二叉查找树(C++实现)
- 一个控制键盘远程控制多台视频会议摄像机(转自搜狐)
- 浅谈最近流行的三起区块链51%算力攻击
- DXP封装中如何实现开孔
- QT制作软件---窗口跟随鼠标进行移动
热门文章
- C# 一些零零碎碎的方法,都是些帮助类,留存,也希望能帮助到各位
- android 电池检测软件,电池寿命检测软件下载-电池寿命检测 安卓版v2.7.0-PC6安卓网...
- 三极管原理,开关电路设计原则,NPN、PNP区别及常用三极管参数
- ubuntu 超级优化,不仅仅是禁用几个服务哦
- project2010根据法定节假日更改工作时间
- AltiumDesigner覆铜挖空技巧总结
- 国外LEAD,联盟经理常见问答
- acm CodeForces 546A
- 360公司2016校园招聘笔试题大题一
- Helm:问题对应:k3s下使用helm 3提示Kubernetes cluster unreachable