集成
软件项目都是由多模块组成,由不同的人员、不同的团队完成各模块开发,在交付之前,必须保证能够顺利地组合在一起,这个组合的过程就是集成。
持续集成
持续是指在交付前进行项目集成,要在整个开发过程中不断进行集成工作。
持续集成(Continuous integration)简称CI:实际上是一种软件开发实践,要求开发团队经常性进行系统集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。
持续集成的作用
1.快速发现错误。
2.提升工作效率。
3.防止分支大幅偏离主干。
4.更快速的发布更新。
持续交付
持续交付(Continuous delivery)在持续集成的基础上,将集成后的代码部署到类似真实运行环境的「类生产环境」中。持续交付优先于整个产品生命周期的软件部署,建立在高水平自动化持续集成之上,它包含了自动构建、打包、部署与测试的流程,以此来减少手动任务并加快软件交付速度。
Jenkins是什么?
Jenkins 是一个独立的开源自动化服务器,可用于自动执行与构建、测试和交付相关的各种任务,或者部署软件。
Jenkins 是一个可扩展的自动化服务器,拥有超过 1800 个插件为数百种工具和服务提供集成。
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。使用java语言编写的软件。
数据流图
Pipeline:流水线,可以编写pipeline脚本去批量自动完成某些任务。
Blueocean是可以图形化管理(编写,查看,修改等)我们的流水线 --》Jenkins内部的一个插件。
blueocean是pipeline的可视化UI。
Jenkins安装
安装方式:
1.使用war包安装
- 先部署java 8 环境安装jdk相关的包。
- 下载 Jenkins。
- 打开终端进入到下载目录。
- 运行命令 java -jar jenkins.war --httpPort=8080。
- 打开浏览器进入链接 http://localhost:8080。
2.使用容器启动
docker pull jenkins/jenkins:lts-jdk11 # 没有安装很多插件的Jenkins
docker pull jenkinsci/blueocean # 带插件blueocean的Jenkins
拉取Jenkins镜像
[root@k8snode1 ~]# docker pull jenkinsci/blueocean
[root@k8snode1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins lts-jdk11 2a4bbe50c40b 16 months ago 441MB
jenkinsci/blueocean latest 04540a0bb985 7 months ago 579MB
[root@k8snode2 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins lts-jdk11 2a4bbe50c40b 16 months ago 441MB
jenkinsci/blueocean latest 04540a0bb985 7 months ago 579MB
启动Jenkins容器
[root@k8snode1 ~]# docker run \
> --name sc-jenkins-1 \
> -u root \
> --rm \
> -d \
> -p 8080:8080 \
> -p 50000:50000 \
> -v jenkins-data:/var/jenkins_home \
> -v /var/run/docker.sock:/var/run/docker.sock \
> jenkinsci/blueocean
f11d5884af89bcb50bb98b93261e1f7377894f3569c9ef69131886534657f3da
您在 /var/spool/mail/root 中有新邮件
[root@k8snode1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f11d5884af89 jenkinsci/blueocean "/sbin/tini -- /usr/…" 4 seconds ago Up 2 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp sc-jenkins-1
在windows的浏览器里访问宿主机的ip+端口号,登录Jenkins。
http://192.168.102.137:8080
登录的时候需要输入密码
[root@k8snode1 ~]# docker exec -it sc-jenkins-1 bash
bash-5.1# cat /var/jenkins_home/secrets/initialAdminPassword
59a81024dcba412ca7af869fdb5a8e36
bash-5.1#
选择安装推荐的插件。
配置完成后,需要再次启动Jenkins的容器。
[root@k8snode1 ~]# docker start sc-jenkins-1