Devops项目(git-gitlab)
企业业务代码发布系统环境部署
主机规划:
Dev (开发者) 192.168.10.11 项目sologit
Gitlab-server(代码仓库) 192.168.10.12 gitlab-ce
Jenkins-server(编译仓库,打包镜像)192.168.10.13 jenkins,docker,git,maven
Harbor-server(存储容器镜像) 192.168.10.14 harbor,docker
Web-server(运行容器,项目上线) 192.168.10.15 docker
主机名配置(根据主机规划实施配置)
[root@docker-01 ~]# hostnamectl set-hostname dev
[root@docker-01 ~]# bash
主机IP地址配置
192.168.10.11——192.168.10.15
主机名与IP地址解析配置
[root@dev ~]# vim /etc/hosts
添加:
192.168.10.11 dev
192.168.10.12 gitlab-server
192.168.10.13 jenkins-server
192.168.10.14 harbor-server
192.168.10.15 web-server
拷贝/etc/hosts文件给其他主机:
[root@dev ~]# cat /etc/hosts
[root@dev ~]# scp /etc/hosts root@192.168.10.12:/etc/
[root@dev ~]# scp /etc/hosts root@192.168.10.13:/etc/
[root@dev ~]# scp /etc/hosts root@192.168.10.14:/etc/
[root@dev ~]# scp /etc/hosts root@192.168.10.15:/etc/
主机安全配置
关闭个主机的防火墙和selinux,配置阿里源,互信,安装vim,wget,net-tools工具
主机时间同步
[root@dev ~]# crontab -e
添加:
0 */1 * * * ntpdate time1.aliyun.com
以上内容5台虚拟机都做!!!
实验环境:初始快照,内存4G(避免服务正常运行)
- 各个主机中工具安装
代码提交流程:工作区——暂存区——版本库
Dev主机:
- 安装git工具
[root@dev data]# yum -y install git
- 创建版本库目录,并初始化版本库
[root@dev data]# mkdir /data
[root@dev data]# cd /data/ //创建和gitlab同步的目录,下面必须初始化
[root@dev data]# git init //初始化当前目录为版本库
[root@dev data]# ls -a //查看.git版本库目录

- 上传代码到本地git库
- 创建文件,模拟代码:
[root@dev data]# vim readme.txt (可以不写内容)
- 上传代码到暂存区(内存缓存):
单个文件上传:
[root@dev data]# git add readme.txt
- 查看暂存区:
[root@dev data]# git status

当前目录所有文件上传:
git add .
- 上传到版本库:
[root@dev data]# git config --global user.name "wlb"
[root@dev data]# git config --global user.email "123456789@qq.com"
[root@dev data]# git commit -m "add readme.txt v1"[fl1]
[root@dev data]# git status

- 版本回滚
- 查看历史记录
[root@dev data]# git log //显示详细信息

[root@dev data]# git log –oneline //显示摘要信息
![]()
- 版本回滚
[root@dev data]# rm -f readme.txt
[root@dev data]# ls -l
总用量 0
[root@dev data]# git reset --hard 68dbf1a //通过git log的版本号回滚写前7位即可
查看发现文件恢复:
[root@dev data]# ls -l

- 查看命令操作日志
[root@dev data]# git reflog
重新编辑:[root@dev data]# vim readme.txt
提交到版本库:
[root@dev data]# git add .
[root@dev data]# git commit -m 'change readme.txt v2'

查看命令操作日志:
[root@dev data]# git reflog
可以回滚到之前的任意状态:
[root@dev data]# git reset --hard 3ce6195
或者
[root@dev data]# git reset --hard 68dbf1a

- 分支管理
查看分支:
[root@dev data]# git branch
* master
创建分支:
[root@dev data]# git branch ops
切换分支:
[root@dev data]# git checkout ops
创建并切换到新的分支:
[root@dev data]# git checkout -b dev
编辑readme.txt文件
合并分支到主分支:
合并分支:
[root@dev data]# git merge dev
先切换回master:
[root@dev data]# git checkout master
[root@dev data]# ls -l

删除分支:
[root@dev data]# git branch -d dev
已删除分支 dev(曾为 68dbf1a)
Gitlab-server主机:
- Gitlab安装:
- 安装依赖包
安装前提软件:
[root@dev ~]# yum install curl policycoreutils openssh-server openssh-clients postfix -y
- 下载清华gitlab安装包
拖入相关软件包:

- 安装gitlab-ce软件包
[root@gitlab-server ~]# yum -y localinstall gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
- 修改配置文件,指定IP地址
[root@gitlab-server ~]# vim /etc/gitlab/gitlab.rb
修改:extiernal_url 'http://192.168.10.12'

保存退出
- 配置启动gitlab
[root@gitlab-server ~]# gitlab-ctl reconfigure

查看状态:
[root@gitlab-server ~]# gitlab-ctl status

- Gitlab服务管理命令(开启/关闭/重启)
[root@gitlab-server ~]# gitlab-ctl start
[root@gitlab-server ~]# gitlab-ctl stop
[root@gitlab-server ~]# gitlab-ctl restart
- 登录gitlab
Windows主机上登录:http://192.168.10.12/
管理员:root
密码:gitlab..(自己设置的)初始配置新密码,最少8位


- Gitlab配置使用
- 取消注册功能
登录gitlab--admin area(顶部菜单栏小扳手图标)--左侧面板settings--Sign-up Restrictions--去除勾选sign-up enabled --下拉选save保存

- 修改登录欢迎界面
登录gitlab--admin area--Appearance--填写管理员联系方式和logo--save

保存

- 项目创建流程
创建用户 (如shian)
登录gitlab--admin area--new user--添加用户名、邮箱--create--保存,edit--修改密码


Create user
点击右上角edit,修改普通用户shian的密码:


创建group(如web)
登录gitlab--admin area--new group (添加用户时,指定用户身份developer)


Create group
将用户添加到组:


创建项目
登录gitlab--admin area--new project--注意选择组(如web)



- 上传ssh-key
本地用户上传私钥:[root@gitlab-server ~]# ssh-keygen -t rsa
复制公钥内容:
[root@gitlab-server ~]# cat /root/.ssh/id_rsa.pub

粘贴到web界面:右上角--用户--settings--SSH Keys



- 克隆下载项目(可以在git开发者上做,也可以在gitlab上做)

[root@gitlab-server ~]# git clone git@192.168.10.12:web/web1.git

- 修改文件内容,再推送上传代码(管理身份)
[root@gitlab-server ~]# cd web1/
[root@gitlab-server web1]# echo 123456 > new.txt
[root@gitlab-server web1]# git add .
[root@gitlab-server web1]# git config --global user.email "wlb@163.com"
[root@gitlab-server web1]# git config --global user.name "wlb"
[root@gitlab-server web1]# git commit -m "add new.txt"
[root@gitlab-server web1]# git push -u origin master


- 在客户机,普通开发人员更新代码流程
- 上传ssh私钥:
本地用户创建私钥:
[root@dev ~]# ssh-keygen -t rsa
复制公钥内容:
[root@dev ~]# cat /root/.ssh/id_rsa.pub

shian登录:右上角--用户--settings--SSH Keys(也可以直接上传到root用户的ssh keys)


再次登录


- 远程关联仓库:
[root@dev ~]# mkdir /data
[root@dev ~]# cd /data
[root@dev data]# git init
[root@dev data]# git remote add origin git@192.168.10.12:web/web1.git
- 下载同步代码:
[root@dev data]# git pull origin master

- 创建分支,修改代码:
[root@dev data]# git checkout -b ops
分支ops已经存在就直接切换分支:
[root@dev data]# git checkout ops
[root@dev data]# echo 6666666 > new111.txt
[root@dev data]# git add .
[root@dev data]# git commit -m "add new111.txt"
上传到版本库失败时,全局定义在重新上传:
[root@dev data]# git config --global user.name "shian"
[root@dev data]# git config --global user.email "shian@163.com"
[root@dev data]# git commit -m "add new111.txt"
- Zhngsan推送ops分支(普通用户无权推送master)
[root@dev data]# git push -u origin ops

- Zhangsan在web界面创建merge请求




- 切换到管理员root登录,进入项目,同意merge请求



重新进入项目web1查看:

[fl1]git config --global user.name "wlb" #声明自己的名字
git config --global user.email "123456789@qq.com" #声明自己的邮箱
git commit -m "add readme.txt v1" #提交代码,添加描述信息
更多推荐




所有评论(0)