教育培训机构网站建设,做网站好的框架,国外网站 国内访问速度,东莞市设计公司1、CICD持续集成部署
传统软件开发流程#xff1a;
1、项目经理分配模块开发任务给开发人员#xff08;项目经理-开发#xff09;
2、每个模块单独开发完毕#xff08;开发#xff09;#xff0c;单元测试#xff08;测试#xff09;
3、开发完毕后#xff0c;集成部…1、CICD持续集成部署
传统软件开发流程
1、项目经理分配模块开发任务给开发人员项目经理-开发
2、每个模块单独开发完毕开发单元测试测试
3、开发完毕后集成部署到服务器测试、运维
4、测试出现问题提交bug开发继续修复bug开发
5、bug修改完毕继续提交测试....
问题
1、模块之间依赖负载集成部署经常出问题
2、测试人员经常在等待
3、按时交付也会出问题
思考
1、测试时间能否提前开发一提交代码问题就能直接暴露出来自动化测试
2、人工集成部署 ( 能否使用自动化工具部署构建 )持续集成简称 CI 思想每天要多次将代码合并到主干并进行集成测试这样就可以提早发现错误进行修正。持续集成也属于DevOps运维开发。 CI持续集成的好处 1、自动化集成部署提高了集成效率。 2、更快的修复问题。 3、更快的进行交付。 4、提高了产品质量。 持续集成流程 DevOps 兴起于2009 年近年来由于云计算、互联网的发展促进了DevOps的基础设施及工具链的发展涌现了一大批优秀的工具这些工具包括开发测试运维的各个领域例如GitHubGit/svnDocker、JenkinsHudSonAnt/Maven/Gradle,QUnit、JMeter等看下图 这么多软件按需学习公司用什么学什么。 测试、部署的逻辑只需要写一遍就可以自动运行了。 自动化监控平台短信- 自动化压测平台
2、GitLab类似github是个私有仓库
1、GitLab安装至少8G内存4核cpu
# 查找Gitlab镜像
docker search gitlab/gitlab-ce
# gitlab镜像拉取
docker pull gitlab/gitlab-ce
# 查看镜像
docker images
# 本机先建3个目录为了gitlab容器通过挂载本机目录启动后可以映射到本机目录
# 配置文件
mkdir -p /home/gitlab/etc
# 数据文件
mkdir -p /home/gitlab/data
# 日志文件
mkdir -p /home/gitlab/logs
# 启动容器 mygitlab如果不指定--hostnamehost默认使用的是容器id访问。
docker run --name mygitlab -d \
--hostname10.1.1.118 \
-p 4443:443 -p 8888:80 -p 8022:22 \
-v /home/gitlab/etc:/etc/gitlab \
-v /home/gitlab/data:/var/opt/gitlab \
-v /home/gitlab/logs:/var/log/gitlab \
--privilegedtrue \
gitlab/gitlab-ce:latest
# 动态查看容器日志
docker logs -f mygitlab配置
# 配置http协议所使用的访问地址不加端口默认为80
vim /home/gitlab/etc/gitlab.rb 加上下面这一行配置
external_url http://10.1.1.118/home/gitlab/data/gitlab-rails/etc/gitlab.yml刚才启动容器指定的--hostname可在此配置文件修改配置2、网页访问登入http://10.1.1.118:8888
# 查看root用户默认密码
cat /home/gitlab/etc/initial_root_password
Password: Gsxzpjm/RwJgHlHIUJIOTFvfYnM19sC2VMPM7NTmCng登录成功后修改密码默认密码24小时有效 3、创建项目 直接像使用github一样所有操作都一样。
# 本机需要安装git环境
yum install git -y
git --version克隆项目
# 全局配置
git config --global user.name Administrator
git config --global user.email adminexample.com
git config --global credential.helper store #只需要输入一次账户密码信息就会被保存记住# 注意点需要配置端口8888
git clone http://10.1.1.118:8888/root/base-test.git #有问题可rm -rf base-test删除项目再克隆一次
cd base-test # 克隆下来后进入这个项目
# 创建一个分支git switch -c main这里不创建分支main了使用默认的master主分支
touch README.md #创建一个项目
git add . # git add README.md添加这个项目git add . 添加当前目录下所有项目
git commit -m update # 提交的信息-m update
git push -u origin master #推送到master主分支4、设置免密提交
[rootnode1 ~]# ssh-keygen -t rsa -b 4096 -C adminexample.com -t加密类型-b加密大小-C用户信息
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory /root/.ssh.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:woYgeVBL3AKa5oQ2Rz722JDGPBaLo26Mqd9XNPzYhcQ adminexample.com
The keys randomart image is:
---[RSA 4096]----
|oo . |
|oO. E |
|*B/ . . . |
|*oB.Bo . . |
|.. ..o.S . |
|. . .o o |
|o . |
|o . . |
|... .. |
----[SHA256]-----
[rootnode1 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBm6BA8cjS4bjQKOpvReIE8nHEVTnd9tT25jhcxiQU2Epx190bCe/VVxomYQdIFEeECjPzx3TCLMHHxd5rNFaw9hljJwcQuaODmil5g1LmQRFZqnKoTXc9a5VDtW5CZpyGcgrl8lsE2Bgdh95Bmqta64VOhhc5sLjuSY6X5HQjBOvMmg6WetdlAiUIWp4egTXMXzXqCHfRkLw9opuqQpITpCmUOl94PRNG8eqhHGr0o38c/OJmNKDFXx9ouuuRLUJWvmKqCsyvMTSGlvw3bKxsFGQA2VGn6jCgzrEZI1tZakmhoGw8EvuIViRrAjgre1tfzsO424cGGpRElXBHwhYx10NTXe6HwZfvRznDuPsvkIQ6TlNIX0CIy2UxN63x4w3ZP3kOaZL0XTaGbHcxJZ2GUgYjQrHzSbDQ7cKKqiazl2epukcVosf19QoVnbsg9uIBMC3ti28flbyZoJCpxIF5ItmsyUq770ryKfaWVMrCYI76tMQHFKVE7rEe/fg6c2RwQxcEPfHOl1UN3nVo82x0HfqtMbDRmUdDMJaCf5X/QIS6oKTg7HosjnRb1XOioPAvr8aF2R5Qa3djkFssIj7BdNTia1lg7AuaGypMRIDohbrNOtkspxmVAyw4UQaqMX5buGYdJarBHUOK/UAXzj/EGKQCtmlkXGxFQ adminexample.com3、Jenkins安装
官网地址https://www.jenkins.io/zh/ 1、通过Docker安装Jenkins
# 创建挂载目录
mkdir -p /var/jenkins_home
chmod 777 /var/jenkins_home
# 安装jenkinsci/blueocean
docker run \-u root \-d \-p 8080:8080 \-p 50000:50000 \-v /var/jenkins_home:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \jenkinsci/blueocean[rootnode1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c18bf132384c jenkinsci/blueocean /sbin/tini -- /usr/… 2 minutes ago Up 2 minutes 0.0.0.0:8080-8080/tcp, :::8080-8080/tcp, 0.0.0.0:50000-50000/tcp, :::50000-50000/tcp reverent_gould
[rootnode1 ~]# docker logs -f c1 动态查看容器日志2、网页登入http://10.1.1.118:8080 查看密码[rootnode1 ~]# cat /var/jenkins_home/secrets/initialAdminPassword 3、进入插件安装页面安装插件默认是国外网址先改成国内网址再安装推荐的所有插件即可。
/var/jenkins_home/updates/default.json 里面默认是国外网址插件下载慢
#把 “ www.google.com ” 改成 “ www.baidu.com ”
#全局搜索 “ updates.jenkins-ci.org/download ” 替换成 mirrors.tuna.tsinghua.edu.cn/jenkins
cd /var/jenkins_home/updates
sed -i s/https:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g default.json
sed -i s/https:\/\/www.google.com/https:\/\/www.baidu.com/g default.json部分插件安装失败不用管直接点击继续 4、插件安装完毕注册登录账户 5、配置实例的地址 6、下载更新插件 插件下载慢问题解决Manage Plugins点击Advanced把Update Site改为国内插件下载地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 带感叹号的说明插件下载完成等待重启安装 检查插件配置比如要使用的gitlab、docker、webhook之类的。没有的话需要勾选下载所有插件都更新到最新版本。 插件安装完重启重启容器会挂掉再启动容器就好了重启后再次网页登入
[rootnode1 updates]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[rootnode1 updates]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c18bf132384c jenkinsci/blueocean /sbin/tini -- /usr/… 2 hours ago Exited (5) 31 seconds ago reverent_gould
[rootnode1 updates]# docker start c17、创建流水线工程
pipeline {agent { docker maven:3.3.3 }stages {stage(build) {steps {sh mvn --version}}}
}双击进入此页面右上角可叉掉
4、Jenkins使用
1、Jenkins基本指令可参照官网学习https://www.jenkins.io/zh/doc/pipeline/tour/hello-world/ Jenkins Pipeline或简称为 “Pipeline”是一套插件将持续交付的实现和实施集成到 Jenkins 中。持续交付 Pipeline 自动化的表达了这样一种流程将基于版本控制管理的软件持续的交付到您的用户和消费者手中。 Jenkins Pipeline 提供了一套可扩展的工具用于将“简单到复杂”的交付流程实现为“持续交付即代码”。Jenkins Pipeline 的定义通常被写入到一个文本文件称为 Jenkinsfile 中该文件可以被放入项目的源代码控制库中。
pipeline {agent { docker maven:3.3.3} // agent定义环境这里可理解为docker runstages {stage(Build) { steps {// 具体的执行逻辑 shell命令sh mvn -version}}}
}