DevOps-GitHub/GitLab

DevOps-GitHub/GitLab

在这里插入图片描述

GitHub是一个开源代码托管平台。基于web的Git仓库,提供共有仓库和私有仓库(私有仓库收费)。

GitLab可以创建免费私有仓库。

GitHub

为了快速操作,这里对创建仓库以及注册不做说明。

首先再GitHub上创建一个远程仓库github_test
在这里插入图片描述

使用GitHub远程仓库

  • 在github上获取克隆地址(注意,这个地址是你仓库的地址,不是我的地址)

    https://github.com/rkun0068/github_test.git
    
  • 克隆项目到本地linux,默认克隆到当前目录(如果出现无法连接github的情况,可以在https://github.com/521xueweihan/GitHub520 查找方法,一般在/etc/hosts文件下配置DNS,刷新即可)

    
    [root@workstation ~]# git clone https://github.com/rkun0068/github_test.git
    Cloning into 'github_test'...
    remote: Enumerating objects: 3, done.
    remote: Counting objects: 100% (3/3), done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (3/3), done.
    
    [root@workstation ~]# cd github_test/
    [root@workstation github_test]# ls
    README.md
    [root@workstation github_test]# cat README.md
    # github_test
    GitHub测试
    
    
  • 提交代码文件

    
    [root@workstation github_test]# vi hello.py
    [root@workstation github_test]# cat hello.py
    print("hello,github")
    [root@workstation github_test]# git add hello.py
    [root@workstation github_test]# git commit -m "提交hello.py"
    [main 9408d5c] 提交hello.py
     1 file changed, 1 insertion(+)
     create mode 100644 hello.py
    
    
  • 使用git push推送到github

    [root@workstation github_test]# git push -u origin main
    Counting objects: 4, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 308 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    remote: To git@github.com:rkun0068/github_test.git
       253eb95..a5196f7  main -> main
    Branch main set up to track remote branch main from origin.
    
    

设置免密

  • 本地尝试空密码密钥对
  • 本地保留私钥,公钥给对方
  • 实现本地到远程免密

[root@workstation ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -C "root@workstation"  -N ""
Generating public/private rsa key pair.
Created directory '/root/.ssh'.
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:ic2UQovuX1DlWRLaY4yWM9+L1UKIeHa4mCHZXMBV65M root@workstation
The key's randomart image is:
+---[RSA 2048]----+
|     .ooo.=..    |
|     *.+ % *     |
|    + B / @ .    |
|   . . # X = .   |
|    . = S E + .  |
|   .   .   + o   |
|    .   . . .    |
|     . .         |
|      .          |
+----[SHA256]-----+  
 
[root@workstation ~]# cat ~/.ssh/id_rsa.pub
 


ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCq/MCM/q8ipB4lsmOSzve25/pPr+FjdxnMM857/cwdqtttcJLID7vnzsgxo/W/bZXg+3h0r4P+VjLR3QLdR2XI/TSEvHdHQxB6Pi8lzbDYaUqTi14RrP5fJIC48pJwArBVMWNGQireXjynQ4Urgy7YJIwQNi1SgFxxrOpxk8PuKCo/ZmKKdS37mJA/rGmMV0xMvqKWgOAm0hrnXKpX1f7YRUeRJfGpN6o73stExbSEd4kas+LAnu++UQ/PNBo+s15Uw9Sm70Vr7mJ9pjLa0swtE6GrX2CbgnOcYg7LS7ngQbeS3KEB+dk7j/j5q0y8o+x6lbIhWWGlOFPGadxADPtF root@workstation

将密钥添加到GitHub设置里的SSH KEYS里

https://github.com/settings/keys

GitLab

在这里插入图片描述

下载地址

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

安装与配置


[root@workstation ~]# rpm -ivh gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm


[root@workstation ~]# vi /etc/gitlab/gitlab.rb

[root@workstation ~]# cat  /etc/gitlab/gitlab.rb | grep 'external_url'
##! For more details on configuring external_url see:
external_url 'http://192.168.182.130'
# registry_external_url 'https://registry.gitlab.example.com'
# pages_external_url "http://pages.example.com/"
# mattermost_external_url 'http://mattermost.example.com'

#修改成gitlab服务器IP地址,对外服务大约在13行

初始化(时间较久,需要3分钟左右,会自动帮助配置各个组件,并启动)

gitlab-ctl reconfigure

查看状态


[root@workstation ~]# gitlab-ctl status
run: gitaly: (pid 9745) 65s; run: log: (pid 9109) 171s
run: gitlab-monitor: (pid 9781) 63s; run: log: (pid 9445) 136s
run: gitlab-workhorse: (pid 9759) 64s; run: log: (pid 9215) 165s
run: logrotate: (pid 9320) 153s; run: log: (pid 9319) 153s
run: nginx: (pid 9274) 159s; run: log: (pid 9273) 159s
run: node-exporter: (pid 9395) 142s; run: log: (pid 9394) 142s
run: postgres-exporter: (pid 9837) 62s; run: log: (pid 9600) 113s
run: postgresql: (pid 8774) 231s; run: log: (pid 8773) 231s
run: prometheus: (pid 9824) 62s; run: log: (pid 9544) 124s
run: redis: (pid 8651) 237s; run: log: (pid 8650) 237s
run: redis-exporter: (pid 9494) 130s; run: log: (pid 9493) 130s
run: sidekiq: (pid 9048) 178s; run: log: (pid 9047) 178s
run: unicorn: (pid 8980) 184s; run: log: (pid 8979) 184s

登录

访问IP,设置密码

在这里插入图片描述
使用设置的密码登录

在这里插入图片描述

GitLab设置

  • 账号注册时,邮箱验证
  • 有合并请求,邮箱通知
  • 修改密码时,通过邮件修改

在这里插入图片描述

在这里插入图片描述

开发者设置SSH密钥

  • 在开发者电脑设置空密码密钥(你可以使用上文中的,也可以创建新密钥)

    ssh-keygen -t rsa -f /root/.ssh/id_rsa -C "root@workstation"  -N ""
    
  • 查看密钥

    [root@workstation ~]# cat ~/.ssh/id_rsa.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCq/MCM/q8ipB4lsmOSzve25/pPr+FjdxnMM857/cwdqtttcJLID7vnzsgxo/W/bZXg+3h0r4P+VjLR3QLdR2XI/TSEvHdHQxB6Pi8lzbDYaUqTi14RrP5fJIC48pJwArBVMWNGQireXjynQ4Urgy7YJIwQNi1SgFxxrOpxk8PuKCo/ZmKKdS37mJA/rGmMV0xMvqKWgOAm0hrnXKpX1f7YRUeRJfGpN6o73stExbSEd4kas+LAnu++UQ/PNBo+s15Uw9Sm70Vr7mJ9pjLa0swtE6GrX2CbgnOcYg7LS7ngQbeS3KEB+dk7j/j5q0y8o+x6lbIhWWGlOFPGadxADPtF root@workstation
    
    
  • 将密钥粘贴

在这里插入图片描述

GitLab创建仓库

  • GitLab创建仓库(代码存放处)

    在这里插入图片描述

  • 自定义项目

    在这里插入图片描述

    在这里插入图片描述

克隆远程仓库到本地

  • 查看gitlab上帮助

    在这里插入图片描述

  • 开发者电脑设置身份标识

    
    [root@workstation ~]# git config --global user.name "rkun18"
    [root@workstation ~]# git config --global user.email "rkun18@outlook.com"
    [root@workstation ~]# git clone git@192.168.182.130:root/gitlab_test.git
    
    
  • 开发者电脑使用git命令clone,并上传项目

    [root@workstation ~]# cd gitlab_test/
    [root@workstation gitlab_test]# echo "gitlab_test" > README.md
    [root@workstation gitlab_test]# git add .
    [root@workstation gitlab_test]# git commit -m "add README.md"
    [master (root-commit) eaf506f] add README.md
     1 file changed, 1 insertion(+)
     create mode 100644 README.md
    [root@workstation gitlab_test]# git branch
    * master
    [root@workstation gitlab_test]# git push -u origin master
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 224 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@192.168.182.130:root/gitlab_test.git
     * [new branch]      master -> master
    Branch master set up to track remote branch master from origin.
    
    
  • 验证

    在这里插入图片描述

持续集成(CI)

Continuous integration,CI

是一种软件开发实践,团队开发人员经常集成他们的工作,通常每个成员每天至少集成一次,意味每天可能会发生多次集成。每次集成通过自动化构建(编译,测试,发布)验证,从而尽快地发现集成错误。

持续部署(CD)

基于持续交付的基础上,把功能稳定,符合产品需求的版本有方法地部署至生产环境中。可以看作持续交付的最后一环。

持续发布

Continuous Release (CR)

发布是周期性或不定性地对项目在部署后,进行整体软件版本的更新,例如,更新新功能或展示页面框架。

持续测试

Continuous Testing (CT)

持续测试贯穿整个软件开发过程,验证程序员提交代码,检验合规性及降低Bug,减少最终错误,实现敏捷及精益开发。

代码更新方法

蓝绿部署

保证系统在不间断提供服务的情况下上线代码的部署方式。

蓝绿部署的模型中包含两个集群。

正常情况下(无上限操作),集群A和集群B代码版本相同,同时对外提供服务

在这里插入图片描述

在项目上线时,首先把一个集群(比如集群A)从负载列表中摘除,进行版本部署。集群B仍然继续提供服务。

在这里插入图片描述

当集群A升级完成,我们把负载均衡重新指向集群A,再把集群B从负载列表中摘除,进行新版本部署。集群A重新提供服务。

在这里插入图片描述

当集群B也升级完成,集群B也恢复负载列表中。这个时候两个集群版本都已经升级,并且对外的服务几乎没有间断过。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/53079.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 二)

Prop装饰器:父子单向同步 Prop装饰的变量可以和父组件建立单向的同步关系。Prop装饰的变量是可变的,但是变化不会同步回其父组件。 概述 Prop装饰的变量和父组件建立单向的同步关系: Prop变量允许在本地修改,但修改后的变化不会…

【C++】stack | queue | priority_queue的模拟实现

stack&queue的模拟实现 stack 与 queue 作为容器适配器&#xff0c;都默认选择了 deque 作为其底层容器。 #pragma once #include <deque> using namespace std;namespace zs {template<class T, class Container deque<T>>class stack{public:void p…

C#之泛型

目录 一、概述 二、C#中的泛型 继续栈的示例 三、泛型类 &#xff08;一&#xff09;声明泛型类 &#xff08;二&#xff09;创建构造类型 &#xff08;三&#xff09;创建变量和实例 &#xff08;四&#xff09;比较泛型和非泛型栈 四、类型参数的约束 &#xff08;一…

iOS--runtime

什么是Runtime runtime是由C和C、汇编实现的一套API&#xff0c;为OC语言加入了面向对象、运行时的功能运行时&#xff08;runtime&#xff09;将数据类型的确定由编译时推迟到了运行时平时编写的OC代码&#xff0c;在程序运行过程中&#xff0c;最终会转换成runtime的C语言代…

“华为杯”研究生数学建模竞赛2019年-【华为杯】D题:汽车行驶工况构建

目录 摘 要&#xff1a; 1.问题背景与问题重述 1.1 问题背景 1.2 问题重述 2.模型假设 3.符号说明 4.问题一的求解 4.1 问题分析 4.2 异常数据的处理 4.2.1 明显错误数据的处理 4.2.2 加减速异常数据的处理 4.3 缺失数据的处理 4.3.1 数据插补处理 4.3.2 视为长期停车处理 4.3.…

64核RISC-V服务器能打了吗?

作者&#xff1a;西风烈 最近看到“澎峰科技”的微信公众号&#xff0c;看到他们发布了第一款RISC-V服务器&#xff0c;芯片是算能的SG2042&#xff0c;带64个RISC-V核心&#xff08;阿里平头哥的C910v核&#xff09;&#xff0c;2.0GHz主频&#xff0c;最大支持128GB内存。这…

用CSS和HTML写一个水果库存静态页面

HTML代码&#xff1a; <!DOCTYPE html> <html> <head><link rel"stylesheet" type"text/css" href"styles.css"> </head> <body><header><h1>水果库存</h1></header><table>…

问道管理:股利支付率和股利发放率一样吗?

股利是指公司在股票发行后向股东分配的收益。股利付出率和股利发放率是两个在股利分配方面非常重要的概念。很多人会以为这两个概念是相同的&#xff0c;但实践上它们是有差异的。在本文中&#xff0c;咱们将从不同的角度来分析这两个概念的差异和联络。 一、股利付出率和股利发…

计算机毕设 深度学习人体跌倒检测 -yolo 机器视觉 opencv python

文章目录 0 前言1.前言2.实现效果3.相关技术原理3.1卷积神经网络3.1YOLOV5简介3.2 YOLOv5s 模型算法流程和原理4.数据集处理3.1 数据标注简介3.2 数据保存 5.模型训练 6 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题…

容灾独家技术揭秘:HyperBDR无主机数据同步技术

01、一对一单机热备-传统灾备方式 单机热备是一种备份解决方案&#xff0c;它使用两台服务器来确保高可用性&#xff0c;是市场上最为常见的灾备模式。 在单机热备中&#xff0c;一台主服务器和一台备用服务器保持同步&#xff0c;以确保在主服务器出现故障或宕机时可以立即切换…

【数据分析专栏之Python篇】四、pandas介绍

前言 在上一篇中我们安装和使用了Numpy。本期我们来学习使用 核心数据分析支持库 Pandas。 一、pandas概述 1.1 pandas 简介 Pandas 是 Python 的 核心数据分析支持库&#xff0c;提供了快速、灵活、明确的数据结构&#xff0c;旨在简单、直观地处理关系型、标记型数据。 …

微服务体系<2> ribbon

1. 什么是负载均衡 比如说像这样 一个请求打在了nginx上 基于nginx进行负载分流 这就是负载均衡但是负载均衡分 服务端负载均衡和客户端负载均衡 客户端负载均衡 我user 从注册中心拉取服务 拉取order列表&#xff0c;然后发起getOne()调用 这就是客户端负载均衡 特点就是我…

Servlet详解

1、Servlet 1、Java支持动态网页的技术&#xff1a;直接编写Java&#xff0c;利用CGI的方式与WebServer沟通 2、servlet在MVC中相当于控制层的作用。 Servlet的作用&#xff1a; CGI&#xff1a;通用网关接口&#xff1a;是从WEB容器中取得数据&#xff08;内置对象&#x…

基于 ThinkPHP 5.1(稳定版本) 开发wms 进销存系统源码

基于ThinkPHP 5.1&#xff08;LTS版本&#xff09;开发的WMS进销存系统源码 管理员账号密码&#xff1a;admin 一、项目简介 这个系统是一个基于ThinkPHP框架的WMS进销存系统。 二、实现功能 控制台 – 权限管理&#xff08;用户管理、角色管理、节点管理&#xff09; – 订…

Java课题笔记~Maven基础知识

一、什么是Maven&#xff1f; Maven是专门用于管理和构建Java项目的工具。 它的主要功能有&#xff1a; 提供了一套标准化的项目结构提供了一套标准化的构建流程&#xff08;编译&#xff0c;测试&#xff0c;打包&#xff0c;发布……&#xff09;提供了一套依赖管理机制 …

认识 springboot 之 它的配置文件 -2

前言 本篇了解springboot中配置的作用&#xff0c;介绍配置文件的种类&#xff0c;介绍简单使用配置文件&#xff0c;简单的小技巧如何设置注释&#xff0c;开启热部署等等&#xff0c;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&…

查找-多路查找详解篇

多路查找树 多路查找树&#xff08;Multway Search Tree&#xff09;是一种高级的树形数据结构&#xff0c;它 允许每个节点有多个子节点&#xff08;通常大于等于2&#xff09;。多路查找树的每个节点 可以存储多个关键字和对应的值。分类 2-3树&#xff08;2-3 Tree&#x…

Vite+Vue3 开发UI组件库并发布到npm

一直对开源UI组件库比较感兴趣&#xff0c;摸索着开发了一套&#xff0c;虽然还只是开始&#xff0c;但是从搭建到发布这套流程基本弄明白了&#xff0c;现在分享给大家&#xff0c;希望对同样感兴趣的同学有所帮助。 目前我的这套名为hasaki-ui的组件库仅有两个组件&#xff0…

FitBot-一款先进的以健康为中心的聊天机器人

在健康意识高涨&#xff0c;追求均衡生活方式成为普遍追求的时代&#xff0c;营养问题无疑是核心支柱。然而&#xff0c;饮食计划的复杂性和大量的营养数据往往成为我们实现这种平衡的障碍。例如糖尿病患者&#xff0c;他们需要持续和准确的营养指导来有效管理血糖水平。如果能…

框架的知识点整理

目录 1、什么是Spring框架&#xff1f;Spring框架有哪些主要模块&#xff1f; 2 、 使用Spring框架有什么好处&#xff1f; 3、Spring MVC 工作原理 1、什么是Spring框架&#xff1f;Spring框架有哪些主要模块&#xff1f; Spring框架是一个开源的轻量级的Java应用程序开…