GIT/CI&CD
GIT 工具
- git简介
-
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
-
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
-
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
分布式版本控制系统
集中化版本控制系统
本地版本控制系统
- git 工具
Git有三种状态,根据三种状态Git项目会出现在三个区域:工作区、暂存区以及 Git 目录
- 已修改 modified
已修改表示修改了文件,但还没保存到数据库中 - 已暂存 staged
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。 - 已提交 committed
已提交表示数据已经安全地保存在本地数据库中。
git安装
yum install -y git #安装git
本地初始化GIT仓库
mkdir demo #建立本地目录
git init #初始化版本库
ls .git #查看跟踪管理版本库
添加全局git用户以及邮箱
git config --global user.name "adolf" #用户名称
git config --global user.email "adolf@westos.com" #邮箱
查看当前git项目状态
git status
git status -s #简化输出
新建文件,跟踪新文件
echo TEST > README.md
git add README.md # 跟踪新文件
提交保存
git commit -m "add readme.md"
再次修改文件
echo TESTEST >> README.md
M(红色)在右边表示修改后在工作区
M(绿色)在左边表示修改后提交在暂存区
查看已暂存和未暂存的修改
git diff
提交更新
git commit
跳过使用暂存区域
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
管理远程GIT仓库
克隆远程仓库 gitee 示例
提前将ssh公钥上传至gitee,使用ssh方式克隆
git clone git@gitee.com:adolf001/playbook.git
将克隆下来的仓库与远程仓库关联
git remote add origin git@gitee.com:adolf001/playbook.git
git remote -v
echo adolf version > README.md #修改文件
git add README.md #跟踪更新
git commit -m "v1" #提交更新
git push origin master #推送至GITEE
git pull origin #从GITEE拉取最新的项目
git remote remove origin #删除远端关联
- gitlab安装使用
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/ # 下载镜像安装
yum install -y gitlab-ce-14.1.2-ce.0.el7.x86_64.rpm
yum install -y curl policycoreutils-python openssh-server
#基本命令
gitlab-ctl start # 启动所有 gitlab 组件
gitlab-ctl stop # 停止所有 gitlab 组件
gitlab-ctl restart # 重启所有 gitlab 组件
gitlab-ctl status # 查看服务状态
gitlab-ctl reconfigure # 重载服务
gitlab-ctl tail# 重载服务
修改仓库配置IP
vim /etc/gitlab/gitlab.rb
external_url 'http://172.25.52.2'
重新载入gitlab,结束之后默认root的密码会存放在/etc/gitlab/initial_root_password
中
gitlab-ctl reconfigure
cat /etc/gitlab/initial_root_password`
此时访问仓库地址即可使用默认root用户登陆
修改中文环境,创建新项目
在客户主机上生成ssh密钥并上传至gitlab,可以实现免密提交下载等
ssh-keygen
cat ~/.ssh/id_rsa.pub
将其上传至仓库
测试: 在客户端配置免密,下载新建的目录,并更新git
生成密钥,上传公钥
ssh-keygen
cat ~/.ssh/id_rsa.pub
使用git clone 仓库的git
git clone git@172.25.52.2:root/demo.git
在demo目录下修改index.html(已经有)
echo adolf >> index.html
git status
git config --global user.email “westos@rhel.com” #初次提交需要设定用户名与邮箱
git config --global user.name “westos”
git commit -m "update index.html
git push -u origin main #初次上传需要-u
此时在仓库已经可以看见westos用户作出的修改
持续集成&持续交付
CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中 。
Jenkins简介
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。其使用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
Jenkins安装
软件下载:https://jenkins.io/zh/download/
国内镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
• 安装jenkins:
rpm -ivh jdk-8u171-linux-x64.rpm
rpm -ivh jenkins-2.225-1.1.noarch.rpm
systemctl start jenkins
所需依赖项从国内镜像站拉取
systemctl start jenkins
cat /var/lib/jenkins/secrets/initialAdminPassword
d1ba680c9ebc46eea5dddd5b962414a5
修改插件源
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>
sed -i.bak 's/http:\/\/updates.jenkins-ci.org\/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
安装中文环境
Jenkins用户管理
Jenkins的用户管理也是基于rbrc
首先需要安装Jenkins的角色管理插件,然后新建用户
系统管理-安全-管理用户-新建用户 adolf
使用新用户登陆查看权限
可以对demo项目进行删除等