DevOps

本文介绍版本控制工具Git和Svn的基本使用流程,包括私有和公共仓库的管理,以及如何利用Git进行代码的提交、合并等操作。此外,还详细讲解了持续集成工具Jenkins的安装与配置过程,包括与Git的集成、自动化构建和部署。

一.版本控制工具

Git, Svn

版本管理/代码管理: 在开发阶段/测试阶段, 将不同的阶段/不同的开发人员/测试人员 产出的代码内容, 进行统一化管理.

需要使用相同的工具来进行. 原理: 从本地客户端 提交资料/资源/代码 到服务器端.

git 服务器: 私有的服务器(企业内部自己使用, 不对外公开); 公共的(github gitlab gitee)

git 客户端

1.安装git.exe客户端程序

2.打开 git bash .

判断系统的分类: 后缀为 # $ 则为 linux系统, 后缀为 > 则为 windows

3.git config --global user.name "user.name"

git config --global user.email "yourmail@youremail.com.cn"

ssh-keygen -t rsa -C "yourmail@youremail.com.cn"

连续三次回车, 确认保存公钥/私钥 到 C:\Users\用户名/.ssh

id_rsa(私钥) id_rsa.pub(公钥)

4.在gitee官网注册账号, 并创建仓库

5.将客户端公钥与服务器端 建立连接

6.选择仓库的ssh下载地址, 在本地创建文件夹, 在文件夹内 右键 git bash here 输入

git clone git.xxxx.ssh

7.在本地电脑的仓库内, 放入需要上传到服务器的代码内容/文件

在本地电脑仓库中, 右键 git gui here

选中需要上传的文件, Commit中,选择 stage to commit 到准备提交

点击 sign off 签名, 输入 上传文件的注释, 显示 上传的人员是谁及邮箱地址(点击sign off后如果未显示 用户名和邮箱地址, 应该删除掉 之前的公钥私钥, 重新执行公钥私钥的产生步骤)

点击 Commit, 提交代码到 暂存区

点击push 上传到服务器即可

8.代码合并

本地仓库中, 新增了内容, 服务器仓库代码也有新的内容, 怎么样来合并代码?

1.在本地仓库中, git bash here, git pull 拉取仓库中的最新的代码

2.在修改了本地仓库内容后, 先通过 git pull 拉取, 在重新进行提交.

2.持续集成工具

1.将tomcat解压到 D E盘的根目录下

2.进入tomcat/bin下, 双击 startup.bat

3.在浏览器输入: http://localhost:8080 回车, 查看是否显示为tomcat界面

如果访问 上面的网址, 没有内容展示, 一般是两个原因: 1.地址写错了. 2.java环境不对

4.将jenkins.war包, copy到 tomcat/webapps下. 将startup.bat关闭, 重启一次.

访问 jenkins, http://localhost:8080/jenkins

输入默认的秘钥, 点击继续, 进入插件安装界面

5.插件安装

选择 选择插件来安装 ---> 正上方的 无 ---> 表示 默认的插件1个都不需要进行安装 ; 如界面提示为 离线, 点击 跳过插件安装.

6.创建管理员账户

​       输入账号信息

7. 实例配置 点击保存并完成, 开始使用jenkins即可.

8. new Item, 输入项目名称, 选择 free style  project , 点击保存, 点击save. 

1.点击 build now 立即构建, 构建完成后, 在C:/users/用户名/.jenkins中 确认 workspace目录是否存在.

2.如果 .jenkins中 不存在 workspace :

  • 关闭tomcat服务
  • 删除.jenkins整个目录
  • 删除tomcat
  • 重新解压tomcat
  • 重新将 jenkins.war放入 新的tomcat/webapps中
  • 重新启动, 重复执行之前的安装步骤即可

3.将.jenkins中的 plugins 目录删除, 重新解压 plugins到.jenkins目录下即可.

复制仓库 .git 克隆下载地址, 在jenkins中 勾选Git插件, 填入复制的git地址(在输入框外点击一下, 没有错误提示, 则表示已连接成功)

在build(构建)中, 选择 execute windows bach command(等价于 cmd dos窗口)

jenkins中默认的路径地址: c:/users/用户名/.jenkins/workspace/jenkins项目名

如果需要运行python文件, 需要先切换路径地址(cmd命令)

切换路径后, 通过 python 文件名.py的方式进行执行.

4.Build Triggers 构建触发器

定时构建 Build periodically

* * * * * 每个星号 都表示一个时间纬度

5.集成 钉钉消息通知

1.安装dingding插件

2.配置钉钉消息提醒

webhook 加密

3.在钉钉群组中, 进行机器人设置

二.持续集成: DevOps ---从开发阶段到运维阶段, 全流程自动化

CI/CD核心: 持续集成、持续交付(测试阶段)和持续部署

集成: 将项目的各个模块 集成为一个完整的系统/软件.

jenkins(Git代码管理, shell环境部署与执行脚本), 各种插件 几千+.

maven/ant 将java代码, 打包为 .jar包 / .war包

allure 报告插件

git插件

email邮件通知

jdk

docker k8s

大数据 (odps)

...

06-20
### DevOps最佳实践与工具链 DevOps 是一种结合了软件开发(Development)和 IT 运维(Operations)的文化、实践和工具的集合,旨在通过提高组织的能力来更快地交付应用程序和服务,从而提升企业的竞争力[^2]。以下是 DevOps 的一些最佳实践及其工具链的关键组成部分。 #### 1. 版本控制 版本控制是 DevOps 工具链中的核心部分之一,它确保代码的变更能够被有效地管理和追踪。Git 是目前最广泛使用的分布式版本控制系统,它支持团队协作并提供强大的分支管理功能[^1]。通过 Git,团队可以实现高效的代码合并和冲突解决。 ```bash # 示例:初始化一个 Git 仓库 git init ``` #### 2. 持续集成 持续集成(CI)是 DevOps 的关键环节,它要求开发者频繁地将代码集成到主分支中,并通过自动化构建和测试确保代码的质量。Jenkins 是一个流行的开源 CI/CD 工具,支持多种插件以适应不同的开发环境和需求[^1]。 ```groovy // 示例:Jenkinsfile 配置 pipeline { agent any stages { stage('Build') { steps { echo 'Building...' } } stage('Test') { steps { echo 'Testing...' } } } } ``` #### 3. 持续交付与部署 持续交付(CD)的目标是确保代码随时可以部署到生产环境中。Docker 和 Kubernetes 是实现容器化和编排的重要工具,它们使得应用能够在不同环境中一致运行。Kubernetes 提供了自动化的扩展和故障恢复能力,极大地简化了大规模应用的管理。 ```yaml # 示例:Dockerfile 配置 FROM python:3.9-slim WORKDIR /app COPY . . RUN pip install -r requirements.txt CMD ["python", "app.py"] ``` #### 4. 配置管理 配置管理工具如 Ansible 可以帮助团队自动化服务器配置和应用部署过程。Ansible 通过无代理的方式执行任务,简化了基础设施即代码(IaC)的实现[^1]。 ```yaml # 示例:Ansible Playbook - name: Install and start Apache hosts: webservers tasks: - name: Ensure Apache is installed apt: name: apache2 state: present - name: Start Apache service service: name: apache2 state: started ``` #### 5. 监控与日志管理 监控和日志管理对于识别和解决问题至关重要。Prometheus 和 Grafana 是常用的监控解决方案,它们提供了强大的数据收集和可视化功能。同时,结合 ELK(Elasticsearch, Logstash, Kibana)栈可以实现全面的日志管理。 ```yaml # 示例:Prometheus 配置文件片段 scrape_configs: - job_name: 'node' static_configs: - targets: ['localhost:9100'] ``` #### 最佳实践 - **文化转变**:鼓励跨职能团队合作,打破开发和运维之间的壁垒。 - **自动化一切**:从代码提交到生产部署,尽可能减少手动干预。 - **监控与反馈**:建立实时监控系统,快速响应问题并持续改进[^2]。 - **安全性集成**:在开发周期早期引入安全测试(Shift Left),降低后期修复成本[^3]。 #### 结论 通过采用上述工具链和最佳实践,组织可以显著提升软件交付的速度和质量,同时降低风险。这不仅适用于传统软件开发,也适用于 AI 软件 2.0 等新兴领域[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值