欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-08 12:17:09
...

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桌面级的
P8-DevOps中的CI/CD环境搭建与调优

1、克隆一个gitlab,一个jenkins

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

2、gitlab安装

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

主机规划:
云主机建议4核8g
P8-DevOps中的CI/CD环境搭建与调优
gitlab 架构

  • 基于go语言的workhorse
    P8-DevOps中的CI/CD环境搭建与调优

在线安装:
国内的源速度比较快的:阿里源,如果阿里源没有,可以使用清华源
P8-DevOps中的CI/CD环境搭建与调优
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

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

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

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

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

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

vim /etc/gitlab/gitlab.rb url 换成自己的ip地址
P8-DevOps中的CI/CD环境搭建与调优

gitlab-ctl reconfigure 编译

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

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

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

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

Jenkins 安装

P8-DevOps中的CI/CD环境搭建与调优
需要Java环境

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

P8-DevOps中的CI/CD环境搭建与调优
从清华源安装
yum install -y https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.244-1.1.noarch.rpm

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

用户改成root
P8-DevOps中的CI/CD环境搭建与调优

端口保活,避免冲突
P8-DevOps中的CI/CD环境搭建与调优

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

启动jenkins
systemcrl 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
P8-DevOps中的CI/CD环境搭建与调优
问题原因是,一般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
P8-DevOps中的CI/CD环境搭建与调优
登录进去之后,等着它下载插件就好了
P8-DevOps中的CI/CD环境搭建与调优
插件下载太慢的话:
修改 /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