Gitlab 部署与使用
Devops 简介
DevOps 是 Development 和 Operations 的组合,也就是开发和运维的简写
DevOps 强调整个组织的合作以及交付和基础设施变更的自动化、从而实现持续集成、持续部署和持续交付
DevOps 四大平台:代码托管(gitlab/svn)、项目管理(jira)、运维平台(腾讯蓝鲸/开源平台)、持续交付(Jenkins/gitlab)
CI / CD
#持续集成(CI-Continuous integration)
持续集成指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起且相互不影响工作
#持续部署(CD-continuous deployment)
基于平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的产品,持续部署在某种程度上代表了一个开发团队的更新迭代速率
#持续交付(Continuous Delivery)
持续交付是在持续部署的基础之上,将产品交付到线上环境,因此持续交付是产品价值的一种交付,是产品价值的一种盈利的实现
常见部署方式
开发自己上传--最原始的方案
运维自己手动部署
运维使用脚本复制--半自动化
结合web界面一键部署--自动化
持续集成开源工具
在公司的服务器安装某种程序,该程序用于按照特定格式和方式记录和保存公司多名开发人员不定期提交的源代码,且后期可以按照某种标记及方式对用户提交的数据进行还原。
#CVS--早期的集中式版本控制系统
#SVN--集中式版本控制系统
替代 CVS 集中式管理,依赖于网络,一台服务器集中管理,目前依然有部分公司在使用
#Gitlib—-分布式版本控制系统
版本控制系统分类
#集中式版本控制系统
任何的提交和回滚都依赖于连接服务器,SVN服务器是单点
#分布式版本控制系统
Git在每个用户都有一个完整的服务器,然后在有一个中央服务器,用户没有网络也可以先提交到本地,然后在有网络的时候再提交到中央服务器,这样就大大方便了开发者的代码提交和回滚,每个用户都是一个完整的版本库,即使没有中央服务器也可以提交代码或者回滚,最终再把改好的代码提交至中央服务器进行合并即可
Gitlab 部署与使用
GitLab 是一个用于仓库管理系统的开源项目,是私有代码管理工具
https://about.gitlab.com/install/ #Gitlab 服务的安装文档
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ #下载地址
dpkg -i gitlab-ce-ubuntu_11.11.5-ce.0_amd64.deb
grep "^[a-Z]" /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.3'
gitlab-ctl reconfigure #重启服务
Gitlab 目录
/etc/gitlab #配置文件目录
/run/gitlab #运行pid目录
/opt/gitlab #安装目录
/var/opt/gitlab #数据目录
/var/log/gitlab #日志目录
tail -f /var/log/gitlab/nginx/*.log #查看日志
常用命令
gitlab-ctl #客户端命令行操作行
status #查看运行状态
stop #停止gitlab
start #开启gitlab
restart #重启gitlab
help #查看更多帮助
gitlab-rails #用于启动控制台进行特殊操作,比如修改管理员密码、打开数据库控制台等
gitlab-psql #数据库命令行
登录web界面
#浏览器访问: http://10.0.0.3
#设置密码登录 用户名:root
#关闭账户注册
点击扳手按钮,选择Settings,取消勾选Sign-up enabled
#创建gitlab用户
点击new user
#创建组
使用管理员 root 创建组,一个组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限
点击new group: yungroup
#创建项目
点击New project: service
#创建一个测试页面
进入项目 点击Add README
/index.html
Commit message: Add index.html
#命令行测试
git clone http://10.0.0.3/root/service #下载代码至本地
cat service/index.html
git config --global user.email 18559002373@163.com
git config --global user.name yun
vim index.html
git add index.html
git commit -m "v1"
git push
web端验证数据,此时数据以改变
数据保存方式
#SVN与CVS
每次提交的文件都单独保存,即按照文件的提交时间区分不同的版本
#Gitlab
Gitlab 与SVN的数据保存方式不一样,gitlab虽然也会在内部对数据进行逻辑划分保存,但是当后期提交的数据如果和之前提交过的数据没有变化,就直接快照之前的文件,而不是在将文件重新上传一份在保存一遍,这样既节省了空间又加快了代码提交速度
git 缓存区与工作区等概念
工作区:clone 的代码或者开发自己编写的代码文件所在的目录,通常是代码所在的一个服务的目录名称
暂存区:用于存储在工作区中对代码进行修改后的文件所保存的地方,使用git add 添加
本地仓库:用于提交存储在工作区和暂存区中改过的文件地方,使用git commit 提交
远程仓库:多个开发共同协作提交代码的仓库,即gitlab 服务器,使用git push提交
git 命令使用
使用 git 命令下载代码与提交代码等操作
git config --global user.name “name“ #设置全局用户名
git config --global user.email xxx@xx.com #设置全局邮箱
git config --global --list #列出用户全局设置
git add index.html #添加指定文件、目录或当前目录下所有数据到暂存区
git add ./*
git commit -m “11“ #提交暂存区文件到本地工作区,并打标签
git clone http://10.0.0.3/root/service #克隆目录到本地
git pull #更新本地代码
git status #查看本地工作区的状态
git push #提交本地工作区代码到服务器
git log #查看操作日志
echo index.html >> .gitignore #定义忽略文件上传至 gitlab,忽略index.html
git reset --hard HEAD^^ #git版本回滚,HEAD 为当前版本,加一个^为上一个,^^为上上一个版本
git reset --hard 5ae4b06 #回退到指定 id 的版本
#案例,更新版本提交
echo v3 >> index.html
git add ./*
git commit -m "v3"
git push
echo v4 >> index.html
git add index.html
git commit -m "v4"
git push
echo v5 >> index.html
git add index.html
git commit -m "v5"
git push
cat index.html #此时版本v5
v3
v4
v5
git reset --hard HEAD^ #回滚当前版本至上个版本
cat index.html
v3
v4
git pull #更新到最新版本
cat index.html #此时版本v5
v3
v4
v5
git log #获取每次提交的 ID,只需复制前7位
git reset --hard 1a0cdfe6e #回滚至指定id的版本
cat index.html
v3
v4
Gitlab 分支管理
Gitlab 项目中创建分支delevop
develop分支用于测试环境使用
master分支用于生产环境使用
分支的概念:
在代码开发过程中,在gitlab中使用不同的分支名称对代码进行逻辑的隔离,不同名称分支的代码对应不同环境,不同分支的代码可以单独提交
git checkout -b develop #创建并切换到一个新分支
git checkout develop #切换分支
git clone http://10.0.0.3/root/service.git -b develop #克隆develop分支
vim index.html
git add ./*
git commit -m "v4"
git push #此时develop分支比master分支更新
#如果测试没有问题则可以提交分支合并申请,主分支也完成更新
Gitlab 数据备份与恢复
#停止gitlab数据服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:create #在任意目录即可备份当前 gitlab 数据
gitlab-ctl start #备份完成后启动gitlab
ls /var/opt/gitlab/backups/ #可以看到备份文件
1590917370_2020_05_31_11.11.5_gitlab_backup.tar
#删除数据
#执行恢复操作
gitlab-ctl stop unicorn
gitlab-rake gitlab:backup:restore BACKUP=备份文件名 #文件名截至到时间即可
gitlab-ctl start #启动服务,此时文件已经恢复
Gitlab 汉化
https://gitlab.com/xhang/gitlab 下载汉化包
head -1 /opt/gitlab/version-manifest.txt #查看当前gitlab版本
gitlab-ctl stop #停止服务
tar xvf gitlab-v11.11.8-zh.tar
cp -rp /opt/gitlab/embedded/service/gitlab-rails /opt/gitlab-rails.bak #备份源文件
cp -rf gitlab-v11.11.8-zh/* /opt/gitlab/embedded/service/gitlab-rails/ #替换文件
gitlab-ctl reconfigure #重新读取配置文件
gitlab-ctl start
#web界面更改语言
右上角的账户下拉框选 Settings 然后左侧 Preferences 设置项,然后语言选择中文,刷新即可