一、DevOps介绍
DevOps,字面意思是Development &Operations的缩写,也就是开发&运维虽然宇面意思只涉及到了开发团队和运维团队,其实QA测试团队也是参与其中的。
网上可以查看到Dsyoms的符号类似于一个无穷大的符号。
整体的软件开发流程包括:
- PLAN: 开发团队根据客户的目标制定开发计划
- CODE: 根据PLAN开始编码过程,需要将不同版本的代码存储在一个库中,
- BUILD: 编码完成后,需要将代码构建并且运行。
- TEST: 成功构建项目后,需要测试代码是否存在8UG或错误。
- DEPLOY: 代码经过手动测试和自动化测试后,认定代码已经准备好部署并且交给运维团队。
- OPERATE: 运维团队将代码部要到生产环境中。
- MONITOR: 项目部署上线后,需要持续的监控产品,
- INTEGRATE: 然后将监控阶段收到的反馈发送回PLAN阶段,整体反复的流程就是pevQps的核心,即持续集成、持续部署。

核心:Jenkins,代码构建、测试、发布。
最终可以给pevops下一个定义: DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。
自动化的工具协作和沟通来完成软件的生命周期管理。

二、docker安装
docker version
docker-compose version
保证有这两个
防火墙
关闭命令:
systemctl stop firewalld
docker 构建gitlab服务
mkdir /usr/local/docker/gitlab_docker
--创建构建脚本名称
vi docker-compose.yml
--查看gitlab版本号
docker search gitlab

--拉取镜像
docker pull gitlab/gitlab-ce:latest
docker-compose.yml
version: '3.1'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest' ##镜像
container_name: gitlab ##容器名称
restart: always #容器启动,gitlab启动
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.11.11:8929' #当前linux服务器,页面路径
gitlab_rails['gitlab_shell_ssh_port'] = 2224 #
ports: #端口号映射
- '8929:8929'
- '2224:2224'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
启动容器
docker-compose up -d
查看日志
docker-compose logs -f
页面访问路径:
进入gitlab容器查看密码
docker exex -it giltbla bash
cat /etc/gitlab/initial_root_password
root登录,修改密码即可。
安装Docker所需要的依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加Docker Yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo
#查看能安装的版本号
yum list docker-ce --showduplicates | sort
安装指定版本Dokcer26.1.0
sudo yum install docker-ce-26.1.0-1.el7 docker-ce-cli-26.1.0-1.el7 containerd.io docker-buildx-plugin docker-compose-plugin
开机自启动和启用Docker
sudo systemctl enable docker
sudo systemctl start docker
#Docker环境变更
vim /etc/docker/daemon.json
{
"log-driver":"json-file",
"log-opts":{
"max-size" :"50m","max-file":"1"
}
}
#设置虚拟机最大内存和核心
修改文件
sudo vim /etc/sysctl.conf
添加参数
vm.max_map_count = 262144
重新加载/etc/sysctl.conf配置
sysctl -p
三、安装jenkins
安装jenkins-----------
maven准备
复制一个虚拟机出来,修改网卡信息:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR修改为需要的。
重启网卡
systemctl restart network
安装jdk和maven
maven setting.xml设置一下镜像,新增一个阿里云或者其他镜像。
maven setting.xml设置一下jdk8编译插件。
CI/CD可以理解为:
CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。
持续集成:让软件代码可以持续的集成到主干上,并自动构建和测试。
CD过程即是通过Jenkins将打好标签的发行版本代码拉取、构建、制作镜像交给运维人员部署。
持续交付:让经过持续集成的代码可以进行手动部署。
持续部署:让可以持续交付的代码随时随地的自动化部署。

安装 推荐LTS版本:
下载对应版本的Jenkins,此次使用的是支持jdk8的最后一个版本 jenkins-2.346.x
https://www.jenkins.io/download/
https://hub.docker.com/r/jenkins/jenkins/tags?page=5\&page_size=\&ordering=\&name=2.346
拉取命令,复制页面:
docker pull jenkins/jenkins:2.346.1-lts-jdk8
mkdir /usr/local/docker/jenkins_docker
vim docker-compose.yml
version: "3.1"
services:
jenkins:
image: jenkins//jenkins:2.346.1-lts-jdk8
container_name: jenkins
ports:
- 8080:8080
- 50000:50000
volumes:
- ./data/:/var/jenkins_home/
赋权
chmod -R 777 data
---启动
docker-compose up -d
--查看日志
docker logs -f jenkins
日志中会打印密码
重新启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,
需要重新设置下载地址为国内镜像站
数据卷data目录下:
xml
# 修改数据卷中的hudson.model.UpdateCenter.xml文件
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://updates.jenkins.io/update-center.json</url>
</site>
</sites>
# 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
</site>
</sites>
# 清华大学的插件源也可以
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
docker exec -it jenkins bash
--查看密码
cat /var/jenkins_home/secrets/initialAdminPassword
访问页面:
页面:IP:8080
选择插件来安装(选择项默认即可),如果安装不成功,失败也点击继续。
解决方案1:修改源。
方案2:https://plugins.jenkins.io/ 手动下载安装。
创建一个用户信息:root。
开始使用jenkins。
四、jenkins使用
插件管理:
下载失败的插件查看:
页面菜单栏:dashboard------>manage jenkins------>manage plugins
available:
需下载:git Parameter (拉取代码)、Publish Over SSH(连接到服务器)
安装必要的插件,如Jenkins汉化-Localization: Chinese (Simplified)、Git Parameter Plug-in,、 Git Client Plugin、NodeJS Plugin、Publish over SSH等插件:
点击 install without restart
拉取代码需要git,代码构建需要maven和JDK。
把jdk和maven也弄到容器内部,在页面进行指定目录。
全局配置:
bashboard------>manage jenkins------>global Tool Configuration
系统配置:
bashboard------>manage jenkins------>configure System
最下面 publish over ssh,SSH Server(使用账号密码的模式连接),也可以使用秘钥私钥。
远程文件夹:即远程进去的默认目录。
添加远程服务器密码:
测试连接。
可以参考:https://mp.weixin.qq.com/s/P5DSyZ2Mxsmm6TniAbp6YA



配置好应用。
然后构建。
console output可以查看日志。
构建完成后,会在docker目录workspace下看到代码。
代码构建
再次构建,打包。
容器内会workspace/项目下/有会有一个target的打包目录。
jar包推送到目标服务器。
构建后的操作

再次构建,会把jar传输到服务器。