当前位置:   article > 正文

Day01-01-git

Day01-01-git

Content List

  • 运维发展过程
  • 软件生命周期
  • CI/CD/CO/DevOps
  • 持续部署实施流程以及对应工具?*
  • git使用(核心掌握拉取代码,拉取指定版本代码,分支)
  • gitlab私有代码仓库

0. 运维发展过程

在这里插入图片描述

  • 云原生时代:

Devops、SRE框架为指导,Docker/K8S/微服务为基础,用分布式方式加上 Python和Go语言,构建一套云技术产品体系,以及进行高级管理工具的二次开发,实现属于公司自己的自动化运维体系以及云技术体系的自动化产品。使用的自动化运维产品,可以用ran cherargoCDtecktonCl gitops 等,流水线及管理工具

1. ci-cd-co基础

1.1 软件的生命周期

在这里插入图片描述

1)软件的声明周期:软件从0–>1–>0过程

在这里插入图片描述

  • 代码上线流程:
    • 开发书写代码
    • 把代码上传到代码仓库
    • 通过工具拉取代码到测试环境中,运行代码,测试人员测试
    • 通过工具拉取代码部署到生产环境.

2)ci/cd

  • ci cd
  • ci:持续集成:开发的代码集成到代码仓库。
  • cd:持续交付:从代码仓库拉取代码部署到测试环境。
  • cd:持续部署:从代码仓库拉取代码部署到生产环境。

在这里插入图片描述

3)Devops

  • DevOps: 理念让开发人员可以持续集成,运维人员可以持续交付和持续部署.让整个开发过程自动部署,上线…

    • 开发写完的代码自动集成,自动交付与部署。本质是自动化。
    • DevOps是一套快速、频繁、可靠的软件交付实践.
  • DevOps

    • Development 开发
    • Operation 运维
  • DevOPS目标是:解决开发书写代码,集成,交付,部署进度,审核缓慢。

  • DevOPS实现

    • 开发(存放收集代码 CI):git/gitlab/github/gitee(代码平台)
    • 运维(部署代码 CD):jenkins maven …插件 …sonarqube (运维)

DevSecOps

Dev开发

Sec安全

Ops运维

在这里插入图片描述

在这里插入图片描述

4) 小结

  • 熟悉 软件生命周期
  • 必会:ci/cd/devops 持续集成 持续交付 持续部署

1.2 什么是环境

在这里插入图片描述

  • 开发环境
  • 测试环境
  • 预发布环境/准生产环境/预生产环境
  • 生产环境
  • 谁部署,谁维护/负责

在这里插入图片描述

准生产环境/预生产环境生产环境
相同点存放代码,服务配置与生产环境一致存放代码…
区别服务器的配置可以低一些,数量少一些,甚至省钱可以用内部测试环境兼职
关于数据库连接生产环境数据库(从库),nginx镜像流量(alb镜像流量)

1.3 什么是代码部署

  • 代码发布/部署 --> 开发书写的程序代码 --> 部署测试/生产环境 web服务器(站点目录中)

在这里插入图片描述

1.4 代码发布方式

发布方式效率干扰安全性
手动发布干扰因素很多不安全
自动发布干扰因素很少安全

3. DevSecOpt之Git极速入门到放弃

  • 学习目标:
    • 使用Git命令不参考文档的情况下可以拉取代码,上传代码
    • 理解什么是分支。
    • 可以给公共代码仓库和私有代码仓库配置密钥认证访问
角色主机名ip内存
gitlab私有代码仓库oldboy-devops-gitlab10.0.0.71/172.16.1.712G(至少) 推荐2C4G
jenkinsoldboy-devops-jenkins10.0.0.72/172.16.1.721G(至少) 推荐2C4G
sonarqube代码检查oldboy-devops-sonar10.0.0.73/172.16.1.731c1G
nexus私服oldboy-devops-nexus10.0.0.74/172.16.1.741c1G

3.1 什么是git

  • scm

  • 分布式版本控制系统

    • 分布式:svn vs git
    • 版本控制
    • 软件
GitSVN
共同点存放代码,版本控制存放代码,版本控制
工作模式分布式中心化(权限集中)
使用入门较难,熟练后容易使用,目前使用率高入门比较简单,服务端linux,客户端windows
分支创建和维护分支方便创建和维护分支繁琐

3.2 应用场景

3.3 1分钟部署git

  • 其他系统安装传送门https://git-scm.com/docs

1)Win

https://git-scm.com/download/
  • 1

2)Linux(CentOS/Fedora/Rocky Linux/RHEL)

#C7  
yum install -y git

#c8
dnf install -y git #或yum也可以
  • 1
  • 2
  • 3
  • 4
  • 5

3)MacOS

#需要提前安装brew
brew install git
  • 1
  • 2

4)Ubuntu/Debian

#
apt install -y git
  • 1
  • 2

4. lidao直播app辛酸史

  • 单枪匹马勇闯天涯-开发阶段

4.1单枪匹马勇闯天涯-开发阶段

  • 配置git相关信息
#创建项目目录(代码目录)

#成为git仓库

#配置用户
git config
git config --global user.name 'oldboy'
git config --global user.email '918391635@qq.com'
git config --global color.ui true
git config --global --list
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 代码目录初始化
#初始化代码目录
[root@devops-gitlab ~]# mkdir -p /app/code/live-lidao-app
[root@devops-gitlab ~]# cd /app/code/live-lidao-app
[root@devops-gitlab live-lidao-app]# ll -a
总用量 0
drwxr-xr-x 2 root root  6 2024-05-15 10:20 .
drwxr-xr-x 3 root root 28 2024-05-15 10:20 ..
[root@devops-gitlab live-lidao-app]# git init
初始化空的 Git 版本库于 /app/code/live-lidao-app/.git/
[root@devops-gitlab live-lidao-app]# ll -a
总用量 0
drwxr-xr-x 3 root root  18 2024-05-15 10:20 .
drwxr-xr-x 3 root root  28 2024-05-15 10:20 ..
drwxr-xr-x 7 root root 119 2024-05-15 10:20 .git
[root@devops-gitlab live-lidao-app]# ll .git/
总用量 12
drwxr-xr-x 2 root root   6 2024-05-15 10:20 branches
-rw-r--r-- 1 root root  92 2024-05-15 10:20 config
-rw-r--r-- 1 root root  73 2024-05-15 10:20 description
-rw-r--r-- 1 root root  23 2024-05-15 10:20 HEAD
drwxr-xr-x 2 root root 242 2024-05-15 10:20 hooks
drwxr-xr-x 2 root root  21 2024-05-15 10:20 info
drwxr-xr-x 4 root root  30 2024-05-15 10:20 objects
drwxr-xr-x 4 root root  31 2024-05-15 10:20 refs
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • git相关的仓库

在这里插入图片描述

  • 书写代码,提交到暂存区
#书写代码 添加文件
echo oldboy >index.html
echo new app 完成度40% >index.html

#查看状态 仓库状态
git status
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
#   (使用 "git add <file>..." 以包含要提交的内容)
#
#	index.html
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)


#进行提交
git add .
git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#	新文件:    index.html
#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 提交代码到本地仓库
#提交到本地仓库
git commit -m '项目开始 完成60%'
[root@devops-gitlab live-lidao-app]# git commit -m "说明:项目刚刚成立,代码40%"
[master(根提交) 5faade3] 说明:项目刚刚成立,代码40%
 1 file changed, 1 insertion(+)
 create mode 100644 index.html

#查看状态
git status
# 位于分支 master
无文件要提交,干净的工作区

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 再次修改文件并提交
#修改文件内容

# 再次提交
git add .
git commit -m '项目完成90%'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 进行回滚一步到位的
git checkout .
  • 1
名字含义
git init初始化本地仓库目录
git config --global邮箱,用户名,颜色
git add提交数据到缓冲区(暂存区) git add . (所有文件) 或 git add 文件
git commit把暂存区的数据提交到本地仓库 git commit -m “标记/说明”
git status显示工作空间的状态
git reset回滚
git reset --soft cid(版本号)把指定的版本数据内容下载到暂存区
git reset HEAD暂存区 -->工作空间(被修改的状态)
git checkout文件下载到工作空间并可以使用 git checkout . 或 git checkout 文件
git reset --mix 版本号
git reset --hard 版本号把本地仓库指定版本信息数据下载到工作目录中

4.2 git区域与状态

  • 区域

在这里插入图片描述

  • 状态了解 熟悉

在这里插入图片描述

4.3 git分支 branch

1)分支?branch

分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接
提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之上创建一个名叫”拍照功能”的分支,

这种分支只会属于你自己,而其他人看不到,等代码编写完成后再与原来的项目主分支合并下即可,这样即能保证代码不丢失,又不影响其他人的工作。

默认的分支-master 主分支,这个分支的代码一般都是可用,可以部署到生产环境的。

一般开发人员开发代码的时候创建dev分支,shopping分支。

应用名称分支每个分支对应独立功能。

2)详解

在这里插入图片描述

3)案例(了解)

  • 主分支完成提交
[root@devops-gitlab live-lidao-app]# cat index.html 
new app live 完成度100%
[root@devops-gitlab live-lidao-app]# git add .
[root@devops-gitlab live-lidao-app]# git commit -m "live_app_100%"
[master b0d7f3d] live_app_100%
 1 file changed, 1 insertion(+), 1 deletion(-)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 创建shopping分支 书写代码
#查看分支
git branch
* master

#创建分支
git branch shopping
git branch
* master
 shopping
 
#切换分支
git checkout shopping
Switched to branch 'shopping'
#查看 切换结果 git branch
 master
* shopping

#书写shopping代码·并提交
echo 'shopping 90%' >shopping.html
git add .
git commit -m 'shopping 90%'
echo 'shopping 100%' >shopping.html
git add .
git commit -m 'shopping 100%'

#把shopping分支合并到master分支中。
#切换到master 然后执行merge.
git checkout master
git merge shopping
[root@devops-gitlab live-lidao-app]# git merge shopping
更新 b0d7f3d..f847a2a
Fast-forward
 shopping.html | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 shopping.html
[root@devops-gitlab live-lidao-app]# ll
总用量 8
-rw-r--r-- 1 root root 27 2024-05-15 11:29 index.html
-rw-r--r-- 1 root root 17 2024-05-15 11:37 shopping.html
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

4)git 分支命令总结

git 分支相关命令
git branch查看分支
git branch name创建分支
git branch -d name删除分支
git checkout 分支名字切换分支
git merge 分支名字合并(吸收)分支(把指定的分支合并到当前分支中)
git checkout -b name创建分支并切换到这个分支

4.4 入住CBD(远程仓库)

  • 家 --> 公司 --> 代码
  • 家---->代码
  • 公共仓库:gitee.com/github.com
  • 私有仓库:gitlab,gogs

在这里插入图片描述

1)创建 仓库

在这里插入图片描述

2)连接远程仓库(用户名密码方式)

#添加远程仓库(用户名密码方式)
git remote add origin https://gitee.com/dws123456/lidao_live_app.git 
#右边是密钥认证方式    
git@gitee.com:dws123456/lidao_live_app.git 

git remote -v # 查看
#上传本地仓库的内容 到远程仓库
git push -u origin master
#需要输入账号的用户名和密码

[root@devops-gitlab live-lidao-app]# git push -u origin "master"
Counting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (15/15), 1.28 KiB | 0 bytes/s, done.
Total 15 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:dws123456/lidao_live_app.git
 * [new branch]      master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

用户名是啥?下图里面的 :和/之间的就是用户名,可以在个人设置里面更改。

https://gitee.com/dws123456/lidao_live_app.git #用户名密码进行访问,上传.

git@gitee.com:dws123456/lidao_live_app.git #配置了密钥认证,密钥认证进行访问.

# 设置远程仓库的地址
git remote add origin git@gitee.com:dws123456/lidao_live_app.git
# 推送本地仓库的数据到远程仓库
git push -u origin "master"
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

  • 拉取的代码
[root@devops-gitlab ~]# git clone https://gitee.com/dws123456/lidao_live_app.git
正克隆到 'lidao_live_app'...
Username for 'https://gitee.com': 15733168732
Password for 'https://15733168732@gitee.com': 
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 15 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (15/15), done.
[root@devops-gitlab ~]# ll
总用量 4
-rw-------. 1 root root 1354 2024-02-18 16:37 anaconda-ks.cfg
drwxr-xr-x  3 root root   57 2024-05-15 13:38 lidao_live_app
[root@devops-gitlab ~]# cd lidao_live_app/
[root@devops-gitlab lidao_live_app]# ll -a
总用量 8
drwxr-xr-x  3 root root  57 2024-05-15 13:38 .
dr-xr-x---. 5 root root 215 2024-05-15 13:38 ..
drwxr-xr-x  8 root root 163 2024-05-15 13:38 .git
-rw-r--r--  1 root root  27 2024-05-15 13:38 index.html
-rw-r--r--  1 root root  17 2024-05-15 13:38 shopping.html
[root@devops-gitlab lidao_live_app]# git remote -v
origin	https://gitee.com/dws123456/lidao_live_app.git (fetch)
origin	https://gitee.com/dws123456/lidao_live_app.git (push)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

3)连接远程仓库(密钥认证方式)

  • 创建秘钥对
[root@devops-gitlab live-lidao-app]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:/wgYf5XN71M955MeuftotOhgui5yW2/3bXJuF/Km8Gw root@devops-gitlab
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|             +   |
|      . S   o o .|
|       + . . ..+=|
|      . + =. oo=B|
|    . o. *.+*E+XO|
|     o.++ooo+**X@|
+----[SHA256]-----+
[root@devops-gitlab lidao_live_app]# ll /root/.ssh/
总用量 12
-rw------- 1 root root 1679 2024-05-15 12:00 id_rsa
-rw-r--r-- 1 root root  400 2024-05-15 12:00 id_rsa.pub
[root@devops-gitlab live-lidao-app]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4o7LVm5RA+id+QjbFy6JtpJsfVZj25ICN13C2zNvjFIhalVAAE1DYsuvt4njgPaSmW1JfU06Lci6HV+7HI5dEfVHO0dmA1HzxHzNquge99Zn6GaLTSwrnuvwfBQnUZrWbGasny2SyyuMvBw0THflDqiH8whMcbKtsel+Fkwm1TENqtvH9dJx2G9c+leoMUFIrq9/bPwTYx0vkYggx4i2/d1hadYIGS9BEeDjNI0m5H400ZHOEMesvMcXt8x4BbLBftrQeqzxst/uKpjysGER4bsL3+5ZM/ZHwLrxyTv4dic+bqh4N2f30677HvDUaE/3faROe8X5CDfGkTGYiqGgl root@devops-gitlab

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 在远程仓库配置密钥

在这里插入图片描述

在这里插入图片描述

代码仓库访问方法说明
https每次连接的时候需要输入账号的用户名和密码
ssh必备常用. 密钥认证
#访问仓库的主机上 创建密钥对。
ssh-keygen

#修改之前配置的远程仓库地址
git remote remove origin 
git remote -v
git remote add origin git@gitee.com:dws123456/lidao_live_app.git

#查询
git remote -v
origin	git@gitee.com:dws123456/lidao_live_app.git (fetch)
origin	git@gitee.com:dws123456/lidao_live_app.git (push)

#创建新的文件上传到远程仓库测试
touch lidao.txt
git add .
git commit -m "110%"

#上传到远程仓库
git push -u origin master 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

3)仓库管理命令小结

9.git远程仓库:
  1.配置与远程仓库的认证
     ssh√√√√√:     需要将服务器的公钥推送到指定用户下;
     https:(私有) 需要有用户名称,密码,每次都需要输入;
  2.添加远程仓库:
     git remote add origin [https://或者git(ssh)]
     删除 git remote remove orgin 即可
     git remote -v
  3.将本地的仓库内容,推送到远程仓库:  
     git add .
     git commit -m "Messages"
     git push -u origin branch (分支名字)    [ master | .... ]
     git pull origin branch(分支名字)
  4.如果有新员工加入
     指定仓库的代码都下载。
     git clone [https://|git]
     git push origin 分支名字
     git pull origin 分支名字
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

4.5 补充

1 tag

  • tag标签:给commit id设置别名,方便我们快速查看与使用,一般tag标签表示软件的版本.
#创建标签
COMMITID的一个别名,COMMITID不好记忆,   标签相对的好记忆.
 git tag -a "标签名称"   -m "描述"     基于当前最新的COMMITID
 git tag -a "标签名称"   -m "描述" commitID 指定版本打标签
#如何上传标签
 git push origin --tags
 git push origin "标签名称"
 Master: V1.0 V2.0
 Dev: b1.0 b2.0
 
 git clone  -b 标签、分支   https/git
 
 
 [root@devops-gitlab live-lidao-app]# git tag -a v1.0 -m "new 1.0"
[root@devops-gitlab live-lidao-app]# git push origin master 
Everything up-to-date
[root@devops-gitlab live-lidao-app]# git push origin --tags 
Counting objects: 1, done.
Writing objects: 100% (1/1), 156 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:dws123456/lidao_live_app.git
 * [new tag]         v1.0 -> v1.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

在这里插入图片描述

2 gitignore

  • 上传代码的时候,代码中可能包含临时文件cache .swp 排除

  • 在代码根目录中创建文件.gitignore 写上要排除的内容

  • 忽略上传到本地仓库的内容

gitignore忽略文件!!!!
     pyc
     cache/*
     config 
     
$ cat .gitignore
#*.jpg
*.tmp
cache/*
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 应用场景:

    1. 程序运行时产生的垃圾文件(临时文件)
    2. 程序运行时产生的缓存文件(临时文件)
    3. 程序本地开发使用的图片文件
    4. 程序连接数据一类的配置文件(什么时候用,什么时候配置)
  • 各类语言的ignore文件
    链接: https://github.com/github/gitignore

4.6 总结

  • git clone
  • git add 与 git commit
  • git push
  • git remote add origin
  • git remote remove
  • git tag 标签
  • 分支
  • ci,cd,devops,devsecops
  • 代码上线流程
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/646764
推荐阅读
相关标签
  

闽ICP备14008679号