DevOps中的CI/CD环境搭建与调优

DevOps,Docker,云计算等等

一、知识点回顾

上节课内容:

P8架构中项目中所需要的 Canal,主要用于 MySQL 主从架构增量或全量备份,将数据导入ES/Kafka中。

二、本节课主要内容


Java项目,Spring项目,在开发过程中,开发团队需要有不同的角色。maven编译。

我们需要项目管理,软件包括:

  • 禅道(国内)
  • JIRA(国外)

我们需要一个项目管理软件。
对于中小型公司,完全可以用gitlab,可以做代码托管,还提供了 CI (持续集成)功能。

  • CI:持续集成,开发人员Dev分支开发、Bug修复,提交代码到Dev分支,经过组长审核通过之后,进行分之合并,最终集成到Master主分支上。
  • CD:持续部署,Jenkins/teamCity
  • CM:持续监控,Zabbix/普罗米修斯等等

现在有一个岗位叫“交付工程师”,主要负责的就是CI CD

三、Gitlab 开源管理软件

注意:阿里云在安装的时候有坑,不注意的话很有可能被黑客攻击,通过Redis默认密码漏洞植入挖矿病毒

环境搭建

vSphere企业级的,VMWare是PC桌面级的

1、克隆一个gitlab,一个jenkins

2、gitlab安装

两种安装方式:
1、在线安装,yum
2、离线安装,下载安装包,主要针对没有网络的情况

主机规划:
云主机建议4核8g

gitlab 架构

  • 基于go语言的workhorse

在线安装:
国内的源速度比较快的:阿里源,如果阿里源没有,可以使用清华源

vim /etc/yum.repos.d/gitlab-ce.repo

添加清华源yum源,如果是集群内部为了速度,可以搭建本地的yum源

[gitlab-ce]
name=GitLab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

yum makecache && yum install -y gitlab-ce安装

面试题:你用过哪些版本控制工具?

  • SVN Git Gitlab Github Gitee
  • Gitlab有很多坑,比如Redis搭建这个服务的时候,有哪些要点?
  • Redis默认密码的问题,导致服务器不安全,有可能被黑

安装完之后,修改配置文件进行配置

vim /etc/gitlab/gitlab.rb url 换成自己的ip地址

gitlab-ctl reconfigure 编译

gitlab-ctl restart启动,内存至少4G

注意:云主机的配置内存不要太小,推荐4核8G,否则容易出现问题

浏览器输入ip进入j就可以了,如果出现502,等一会儿就好了

Jenkins 安装


需要Java环境

  • 离线安装
  • 在线安装(我们用这种方式)


从清华源安装
yum install -y https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.244-1.1.noarch.rpm

修改配置文件
vim /etc/sysconfig/jenkins

用户改成root

端口保活,避免冲突

解决国内安装插件慢的问题,会卡在安装界面上,阿里云被国外卡的挺惨的
重要:国内插件加速
cd /var/lib/jenkins/updates
default.json
配置文件中,使用google的搜索以及国外的服务器,我们需要进行替换
搜索替换成百度
插件中心使用清华源的插件镜像

启动jenkins
systemctl restart jenkins

如果jenkins启动不起来,报错找不到 /usr/bin/java 的话,添加软链接:
ln -s /usr/java/jdk1.8.0_251/bin/java /usr/bin/java

启动起来之后,访问页面如果如果报下面这个错:
java.lang.UnsatisfiedLinkError: /usr/java/jdk1.8.0_251/jre/lib/i386/libfontmanager.so: libgcc_s.so.1: cannot open shared object file: No such file or directory

问题原因是,一般os安装的是64位的,所以缺省是装libgcc这个包。但java一般还是会用32位的包,因此就会存在上面的问题(系统提供的libgcc_s.so.1是64位的,不是java启动需要的32位的),安装一个32位的就好了。
yum install libgcc.i686 --setopt=protected_multilib=false

再次重启,如果卡在getting ready to work界面不动的话,修改一下这个json文件:
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml

<?xml version='1.1' encoding='UTF-8'?>
<sites><site><id>default</id><url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url></site>
</sites>

然后在重启jenkins,等大概一分钟就可以进来了,根据他的提示把密码复制过来就好了
cat /var/lib/jenkins/secrets/initialAdminPassword

登录进去之后,等着它下载插件就好了

插件下载太慢的话:
修改 /var/lib/jenkins/updates/default.json 默认使用google的搜索 以及国外的服务器,替换成百度

# 多执行几遍,替换彻底
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

P8-DevOps中的CI/CD环境搭建与调优相关推荐

  1. DevOps中的CI/CD环境搭建与调优-Gitlab和Jenkins安装

    DevOps中的CI/CD环境搭建与调优 DevOps中的CI/CD环境搭建与调优 Gitlab 开源的管理软件 安装 配置 Jenkins 持续部署工具(源码拉取 预处理 编译 构建 打 包 镜像 ...

  2. 基于 Rancher 的企业 CI/CD 环境搭建

    CI(Continuous Integration)持续集成,CD(Continuous Delivery) 持续交付(当然也有叫 Continuous Deployment)通常会采用一些软件如Je ...

  3. GItLab入门级CI/CD环境搭建(适用于小微企业或个人)

    相关 什么是CI/CD CI - Continuous Integrarion - 持续集成 现代应用开发的目的是能够让多个开发人员在同时进行同一应用的不同功能.但是这样需要企业在某一天将不同开发人员 ...

  4. cd返回上一 git_PHP项目中应用CI/CD的碎碎恋!

    点击上方"架构艺术",每日干货! 作者:晶晶 原文链接:https://blog.jjonline.cn/linux/239.html DevOps漫谈:谈一谈在PHP项目如何应用 ...

  5. 前端项目中的CI/CD实践(自动化部署)

    前言 前置知识 Linux Docker Nginx Github 可以干嘛 作为一套面向开发和运维团队的解决方案,CI/CD 主要解决集成新代码和向用户频繁交付应用的问题. 更直接地说,就是可以解放 ...

  6. eclipse中SSH三大框架环境搭建二

    通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 相关链接:eclipse中SSH三大k框架环境搭建<一> ec ...

  7. Jenkins 2.X free-style CI/CD流水线搭建(一)

    前面介绍了Jenkins的安装和插件管理,这篇文章我们介绍下Jenkins free-style CI流水线的搭建.虽然现在不推荐使用这种方式搭建流水线.但是它可以帮助初学者快速了解和体验Jenkin ...

  8. 测试开发工程师成长日记010 - Jenkins中的CI/CD/CT(持续集成构建/持续交付/持续测试)

    CI(Continuous integration,持续集成) CI(Continuous integration,中文意思是持续集成)是一种软件开发时间.持续集成强调开发人员提交了新代码之后,立刻进 ...

  9. CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Jenkins安装(二)

    大家好,我是SuieKa,本博文以学习笔记为主,此时此刻我已按捺不住自己的心情将学习搬运到博客上 上手之前,习惯性的多逼逼知识点,尽管各路大神都已经了如指掌了哈哈哈 目录 什么是Jenkins? 安装 ...

最新文章

  1. iOS 预览word pdf 文件
  2. golang的mongodb操作(mgo)
  3. 【C 语言】二级指针作为输入 ( 自定义二级指针内存 | 二级指针排序 | 抽象业务逻辑函数 )
  4. 链表的建立,搜索,插入,反转,销毁以及合并有序链表。
  5. JVM 垃圾回收算法及回收器详解
  6. win10 下pycharm+anaconda 编译生成pyd文件
  7. uniapp 获取图片的高度_uniapp自定义切图
  8. Ubuntu中Zabbix安装客户端
  9. Python Frozenset()
  10. 常州工学院计算机网络考试题库,用Winsock实现在线考试
  11. 如何在一台window系统上演示Erlang分布式程序
  12. Oracle备份恢复之闪回技术
  13. 检测图片是否被PS过,代码案例demo
  14. JAVA中的getBytes()方法(史上最能明白的总结)
  15. Beamforming and Antenna Pattern 2021-11-05
  16. 学习笔记1——制作数据集
  17. Red Hat Enterprise Linux9 + Zabbix 6.2.3 + Grafana 9.2.0
  18. C++primer——形参、局部变量和静态局部变量的差别
  19. java面试-jvm
  20. 苹果电脑macos Ventura 13.2(22D49)dmg原版引导版镜像下载

热门文章

  1. HDU - 3397 Sequence operation(线段树+区间合并)
  2. python写excel标记文字颜色_python3使用xlwt时写入文档字体颜色和边框样式
  3. 安卓重构系列-01使用Kotlin开发第一个Demo
  4. 创建 tls 客户端 凭据时发生严重错误。内部错误状态为 10013_kubectl 创建 Pod 背后到底发生了什么?...
  5. HDU3892(多项式域欧几里德算法)
  6. CSP前训练错误集锦
  7. 【Boost】boost库中thread多线程详解6——线程组简单例子
  8. 某瓜数据之sign参数分析
  9. Kafka最全面试题整理|划重点要考
  10. 史上最详细的MySQL操作事例