持续集成与持续交付之Git工具使用(jenkins、gitlab)

Git工具使用

版本控制系统

版本控制系统经历了如下几个阶段:
第一阶段: 本地版本控制系统
在这里插入图片描述
第二阶段: 集中化的版本控制系统
在这里插入图片描述
第三阶段: 分布式的版本控制系统
在这里插入图片描述

Git简介

自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。
Git有如下特点:

  • 速度快
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

Git 有三种状态:

  • 已修改(modified): 表示修改了文件,但还没保存到数据库中
  • 已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
  • 已提交(committed):表示数据已经安全地保存在本地数据库中
    Git 有三个阶段: 工作区、暂存区以及 Git 目录
    在这里插入图片描述

Git安装

安装Git
yum install -y git
获取 Git 仓库通常有两种方式:
(1)将尚未进行版本控制的本地目录转换为 Git 仓库。
(2)从其它服务器克隆一个已存在的 Git 仓库。比如:git clone

初始化版本库
mkdir demo
cd demo
git init
ls .git/

配置用户信息
git config --global user.name "lyueyue"
git config --global user.email root@lyueyue.org

检查当前文件状态
git status
git status -s

状态简览
git status -s

跟踪新文件
git add README

忽略文件
cat .gitignore

查看已暂存和未暂存的修改
git diff

提交更新
git commit -m '备注'

跳过使用暂存区域
git commit -a -m 'added new benchmarks'

移除文件
git rm PROJECTS.md
git rm --cached README

重命名文件
git mv README.md README
其实,运行 git mv 就相当于运行了下面三条命令:
mv README.md README
git rm README.md
git add README

查看提交历史
git log
git log -p -2
git log --stat
git log --pretty=oneline

取消暂存的文件
git reset HEAD README.md

撤消对文件的修改
git checkout -- README.md

版本回退
git reflog
git reset --hard efa267a

在这里插入图片描述
在这里插入图片描述
??表示是新建的文件,不在版本库中。
在这里插入图片描述
在这里插入图片描述
向 README.md 中重新写入数据,发现文件的状态发生改变。add之后M的位置也发生改变,第二个M表示在工作区,第二个M表示已经提交在暂存区。注意只能commit在暂存区的数据
在这里插入图片描述
隐藏忽略文件
在这里插入图片描述
版本删除与撤销,对暂存区的数据误删之后可以恢复。
在这里插入图片描述
版本回滚
在这里插入图片描述

Git使用

1.注册github帐号,并新建一个仓库。

2.推送本地仓库内容到github
git remote add origin https://github.com/westos007/git.git  #关联远程仓库
git push -u origin master        #第一次推送需要加-u参数

3.使用https方式推送每次需要输入用户名和密码,如果不想麻烦的话采用ssh方式:
ssh-keygen -t rsa -b 4096 -C "yakexi007@westos.org"
生成本地密钥,并上传公钥到github

4.git remote -v                  #关联详情
origin	https://github.com/westos007/git.git (fetch)
origin	https://github.com/westos007/git.git (push)
5.git remote rm origin           #移除关联

6.git remote add origin git@github.com:westos007/git.git

7.git remote -v                  #关联详情
origin git@github.com:westos007/git.git (fetch)
origin git@github.com:westos007/git.git (push)

8.git push origin master

9.git clone git@github.com:westos007/gittest.git    #克隆远程仓库

Gitlab代码仓库

github/gitee有风险,这里搭建一个私有仓库,数据都在本地。
Gitlab官网

1.软件下载(官方下载慢,推荐使用国内镜像站点)
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/

2.软件安装: (官方推荐至少4G内存)
yum install -y curl policycoreutils-python openssh-server
yum install -y gitlab-ce-12.8.5-ce.0.el7.x86_64.rpm
vim /etc/gitlab/gitlab.rb
external_url 'http://172.25.0.11'      #访问gitlab的地址
gitlab-ctl reconfigure                 #重载服务
登录gitlab:
http://172.25.0.11                     #root用户第一次登录需要强制修改密码

3.常用命令:
gitlab-ctl start                       #启动所有 gitlab 组件
gitlab-ctl stop                        #停止所有 gitlab 组件
gitlab-ctl restart                     #重启所有 gitlab 组件
gitlab-ctl status                      #查看服务状态
gitlab-ctl reconfigure                 #重载服务
gitlab-ctl tail                        #查看日志

gitlab安装

在这里插入图片描述
安装工具
在这里插入图片描述
修改配置文件
在这里插入图片描述
在这里插入图片描述
内存调到4个G以上会跑的快一点
在这里插入图片描述

解决报错

报错的原因是之前做k8s的时候把swap分区关闭了
在这里插入图片描述
经过如下步骤:

1.分配2个G空间:
dd if=/dev/zero of=/root/swapfile bs=1M count=2048

2.制作文件并生效
mkswap /root/swapfile
swapon /root/swapfile

3.设置开机启动
vim /etc/fstab                 #加入下面这一行
/root/swapfile swap swap defaults 0 0

在这里插入图片描述
现在 vim /etc/fstab 重试
在这里插入图片描述
配置成功
在这里插入图片描述
在另一台虚拟机(192.168.1.20)上访问试试看,发现第一次登录需要修改密码。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们可以将语言修改为中文
在这里插入图片描述
新建一个项目demo
在这里插入图片描述
现在按照命令行指示上传文件
在这里插入图片描述
上传文件做免密比较方便,现在我们开始做免密。

1.ssh-keygen

2.cat .ssh/id_rsa.pub 

在192.168.1.10虚拟机上生成公钥复制粘贴到192.168.1.20浏览器相应面板上
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在开始上传
在这里插入图片描述
上传成功
在这里插入图片描述
删除本地的demo,还可以从gitlab上克隆到本地。
在这里插入图片描述

jenkins持续集成

jenkins简介

  • Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
  • Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
  • CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
  • CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。

jenkins安装

官网下载
国内镜像站下载

重新使用另一台虚拟机(192.168.1.11)安装jenkins

1.安装jenkins:
rpm -ivh jdk-8u171-linux-x64.rpm          #也可以直接安装java
rpm -ivh jenkins-2.225-1.1.noarch.rpm
systemctl start jenkins

2.访问: http://192.168.1.11:8080

3.使用初始密码登录:cat /var/lib/jenkins/secrets/initialAdminPassword

4.更新插件源:
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
cd /var/lib/jenkins/updates
sed -i.bak 's/https:\/\/updates.jenkins-io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
systemctl restart jenkins

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

解决报错

第一种: 出现离线情况(这里之前使用的虚拟机192.168.1.10,现在换成虚拟机192.168.1.11了)
在这里插入图片描述
更换镜像源:
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
在这里插入图片描述
另外还需要打开浏览器输入网址:http://localhost:8080/pluginManager/advanced编辑配置
在这里插入图片描述
第二种: 一直反复启动jenkins
可以考虑换个镜像源然后重启jenkins
在这里插入图片描述
镜像地址与上面一致
在这里插入图片描述
完成上述操作后重启jenkins发现访问正常
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改密码便于下次访问,密码更改完重新登录即可。
在这里插入图片描述

gitlab结合jenkins

实验步骤

上传一个index.html到gitlab
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
手动设置触发jenkins 将git代码持续集成
新建一个项目test,选择第一个freestyle project。
在这里插入图片描述

解决报错

做ssh免密
在这里插入图片描述
出现如下报错
在这里插入图片描述

在配置jenkins的虚拟机上
yum install -y git

在这里插入图片描述
解决报错的办法是做ssh免密
在这里插入图片描述
之前已经向gitlab上上传了ssh公钥,现在需要向jenkins上上传ssh私钥。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加成功
在这里插入图片描述
构建触发器
在这里插入图片描述
在这里插入图片描述
查看控制台输出
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值