运维初学Day13----Gitlab

GitLab是基于Web的版本控制服务器

Jenkins是CI/CD工具

Gitlab概述

是一个开源的 可以实现一个自托管的Git项目仓库 可以通过web界面进行访问 公开或者私人项目

我这里的部署方式是容器方式部署

redhat8.2
前期准备关闭selinux
关闭防火墙
改sshd的默认端口 (防止端口冲突)
因为Gitlab需要基于ssh协议访问 ,Gitlab需要22端口
文件在/etc/ssh/sshd_config 找到port改为2022

环境准备

安装podman容器

dnf -y install podman

podman load < gitlab_zh.tar # 这里需要自己找容器包

mkdir -p /srv/gitlab/{config,logs,data} #创建用于保存容器数据的目录主要用于数据存储

podman run -d -h gitlab --name gitlab -p 443:443 -p 80:80 -p 22:22 --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab gitlab_zh

打开网页进入网站

通过web界面去创建用户 创建群组 创建项目

git clone http://192.168.4.20/devops/myproject.git #会生成一个myproject的目录 与仓库名

cd myproject

推送数据

git push

git remote -v 查看远程仓库的链接标记名

originhttp://gitlab/devops/myproject.git (fetch)

originhttp://gitlab/devops/myproject.git (push)

我们添加文件 提交文件之后需要去推送数据

git push -u origin master

-u 设置pull/status的上游 upstream

第一次需要指定 第二次直接git push就可以 因为在.git/config有了配置

其他用户只要直接pull就可以获取到其他程序员push上传的最新文件

SSH免密获取

生成密钥

ssh-keygen #一路回车

保存密钥到服务器

cat ~/.ssh/id_rsa.pub

把你看到的复制到gitlab 的web端的右上角 点击头像 点击设置 左边有ssh密钥粘贴进去点击增加密钥

查看仓库信息,当前是http方式

git remote -v
origin http://192.168.4.20/devops/myproject.git (fetch)
origin http://192.168.4.20/devops/myproject.git (push)

删除http的路径

git remote remove origin

添加ssh路径

git remote add origin git@192.168.4.20:devops/myproject.git #这里的原本是gitlab 如果有解析就不用改没有就像我一样改为ip地址

查看修改后的路径

git remote -v

origin git@192.168.4.20:devops/myproject.git (fetch)

origin git@192.168.4.20:devops/myproject.git (push)

此时就没有显示的http

推送测试

echo "this is test01" > 1.txt
[root@develop myweb]# ls
1.txt
[root@develop myweb]# git add .
[root@develop myweb]# git commit -m "add 1.txt"
[master(根提交) f9efd48] add 1.txt
 1 file changed, 1 insertion(+)
 create mode 100644 1.txt
[root@develop myweb]# git push 
枚举对象: 3, 完成.
对象计数中: 100% (3/3), 完成.
写入对象中: 100% (3/3), 212 bytes | 212.00 KiB/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
To gitlab:devops/myweb.git

此时就没有输入密码就可以同步

CI/CD--------就是一个流程图

CI持续集成:

开发人员的自动化流程。成功的CI意味着应用代码的新更改会定期构建、测试并合成到共享存储库中

CD持续交付

通常指开发人员对应用的更改会自动进行错误测试并上传到存储库(如gitlab或容器注册表),然后由运维团队将其部署到实时生产环境中

目的就是确保尽可能减少部署新代码时所需要的工作量

CI/CD减少人为干预

一个完整的流程图

plan --->code--->build(打包项目)--->test--->release(封版)git tag--->deploy(发布)--->operate(运维)--->monitor--->plan

应用上传的流程

  1. 程序员将代码上传到gitlab

  1. 云计算工程师通过jenkins服务器自动下载gitlab上的代码

  1. 云计算工程师写一些计划任务的脚本之类的,用于自动部署到服务器

Jenkins

由Java编写

主要功能监视重复性工作

特点

SCM(软件配置管理) 简单 可扩展 用户界面友好 构建各种风格的项目 可以选择各种

安装

yum install -y git postfix mailx java-11-openjdk

git(jenkins需要连接Gitlab下载代表)

postfix(可以发送邮件)

java jdk(jenkins是java语言开发的软件)

yum install -y jenkins-2.263.1-1.1.noarch.rpm

systemctl restart jenkins 并且开机自启了

随后访问主机的8080端口就可访问到了

jenkins的插件目录

/var/lib/jenkins/plugins/

systemctl restart jenkins

你需要知道

1 podman从本地文件加载镜像的命令是什么?

podman load < xxx.tar

2 Podman实现端口映射和目录映射的选项是什么?

-p -v

3 如何给git代码仓库创建版本标签?

git tag 标记名

4 什么是CI/CD?

是一个工作流程

持续集成:意味着应用代码的新更改会定期构建、测试并合并到共享存储库中

持续交付 : 常是指开发人员对应用的更改会自动进行错误测试并上传到存储库(如 GitLab 或容器注册表),然后由运维团队将其部署到实时生产环境中。

目的就是确保尽可能减少部署新代码时所需的工作量

5 Jenkins默认插件目录是什么?

/var/lib/jenkins/plugins/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

small white poplar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值