赞
踩
以Devops、SRE框架为指导,Docker/K8S/微服务为基础,用分布式方式加上 Python和Go语言,构建一套云技术产品体系,以及进行高级管理工具的二次开发,实现属于公司自己的自动化运维体系以及云技术体系的自动化产品。使用的自动化运维产品,可以用ran cherargoCDtecktonCl gitops 等,流水线及管理工具
DevOps: 理念让开发人员可以持续集成,运维人员可以持续交付和持续部署.让整个开发过程自动部署,上线…
DevOps
DevOPS目标是:解决开发书写代码,集成,交付,部署进度,审核缓慢。
DevOPS实现
DevSecOps
Dev开发
Sec安全
Ops运维
准生产环境/预生产环境 | 生产环境 | |
---|---|---|
相同点 | 存放代码,服务配置与生产环境一致 | 存放代码… |
区别 | 服务器的配置可以低一些,数量少一些,甚至省钱可以用内部测试环境兼职 | |
关于数据库 | 连接生产环境数据库(从库),nginx镜像流量(alb镜像流量) |
发布方式 | 效率 | 干扰 | 安全性 |
---|---|---|---|
手动发布 | 慢 | 干扰因素很多 | 不安全 |
自动发布 | 快 | 干扰因素很少 | 安全 |
角色 | 主机名 | ip | 内存 |
---|---|---|---|
gitlab私有代码仓库 | oldboy-devops-gitlab | 10.0.0.71/172.16.1.71 | 2G(至少) 推荐2C4G |
jenkins | oldboy-devops-jenkins | 10.0.0.72/172.16.1.72 | 1G(至少) 推荐2C4G |
sonarqube代码检查 | oldboy-devops-sonar | 10.0.0.73/172.16.1.73 | 1c1G |
nexus私服 | oldboy-devops-nexus | 10.0.0.74/172.16.1.74 | 1c1G |
scm
分布式版本控制系统
Git | SVN | |
---|---|---|
共同点 | 存放代码,版本控制 | 存放代码,版本控制 |
工作模式 | 分布式 | 中心化(权限集中) |
使用 | 入门较难,熟练后容易使用,目前使用率高 | 入门比较简单,服务端linux,客户端windows |
分支 | 创建和维护分支方便 | 创建和维护分支繁琐 |
https://git-scm.com/download/
#C7
yum install -y git
#c8
dnf install -y git #或yum也可以
#需要提前安装brew
brew install git
#
apt install -y 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
#初始化代码目录 [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
#书写代码 添加文件 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 #
#提交到本地仓库
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
无文件要提交,干净的工作区
#修改文件内容
# 再次提交
git add .
git commit -m '项目完成90%'
git checkout .
名字 | 含义 |
---|---|
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 版本号 | 把本地仓库指定版本信息数据下载到工作目录中 |
分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接
提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之上创建一个名叫”拍照功能”的分支,
这种分支只会属于你自己,而其他人看不到,等代码编写完成后再与原来的项目主分支合并下即可,这样即能保证代码不丢失,又不影响其他人的工作。
默认的分支-master 主分支,这个分支的代码一般都是可用,可以部署到生产环境的。
一般开发人员开发代码的时候创建dev分支,shopping分支。
应用名称分支每个分支对应独立功能。
[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(-)
#查看分支 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
git 分支相关命令 | |
---|---|
git branch | 查看分支 |
git branch name | 创建分支 |
git branch -d name | 删除分支 |
git checkout 分支名字 | 切换分支 |
git merge 分支名字 | 合并(吸收)分支(把指定的分支合并到当前分支中) |
git checkout -b name | 创建分支并切换到这个分支 |
#添加远程仓库(用户名密码方式) 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。
用户名是啥?下图里面的 :和/之间的就是用户名,可以在个人设置里面更改。
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)
[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
代码仓库访问方法 | 说明 |
---|---|
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
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 分支名字
#创建标签 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
上传代码的时候,代码中可能包含临时文件cache .swp 排除
在代码根目录中创建文件.gitignore 写上要排除的内容
忽略上传到本地仓库的内容
gitignore忽略文件!!!!
pyc
cache/*
config
$ cat .gitignore
#*.jpg
*.tmp
cache/*
应用场景:
各类语言的ignore文件
链接: https://github.com/github/gitignore
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。