P8-DevOps中的CI/CD环境搭建与调优
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的搜索以及国外的服务器,我们需要进行替换
搜索替换成百度
插件中心使用清华源
的插件镜像
启动jenkinssystemcrl 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
上一篇: 实用技巧