什么是持续集成php
- Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员常常集成他们的工做,一般每一个成员天天至少集成一次,也就意味着天天可能会发生屡次集成。每次集成都经过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程能够大大减小集成的问题,让团队可以更快的开发内聚的软件。
持续集成最佳实践html
- 维护一个单一的代码库
- 使构建自动化
- 执行测试是构建的一部分
- 集成日志及历史记录
- 使用统一的依赖包管理库
- 天天至少集成一次
什么是jenkinsjava
- 持续集成、自动测试、持续部署的超级引擎,支持自定义工具集、多种交付通道
jenkins安装git
- 安装依赖 yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
- 安装yum源 wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
- rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
- rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
- 安装Jenkins
- yum –y install jenkins
- service jenkins start
- ckconfig Jenkins on
访问jenkinsweb
- 访问Jenkins
- http://192.168.1.110:8080
- 查找admin默认密码
- cat /var/lib/jenkins/secrets/initialAdminPassword
- 输入密码
安装默认插件json
经常使用插件安全
- OWASP Markup Formatter Plugin 安全
- Pipeline 工做流
- SonarQube 代码质检
- SSH plugin
- GitLab Plugin
- Git plugin
- Git Parameter Plug-In 照标签去发布
- Deploy Plugin
- Maven Integration plugin
- Role-based Authorization Strategy
插件管理ssh
- 系统设置>插件管理
- 更新插件、下载安装、代理设置、可用插件
- 手工安装
- 下载地址
- http://updates.jenkins-ci.org/
覆盖插件目录工具
- mv plugins /var/lib/jenkins/
- chown -R jenkins.jenkins plugins/
镜像管理gitlab
- 所有镜像
- http://mirrors.jenkins-ci.org/status.html
- 更换镜像
- http://updates.jenkins-ci.org/update-center.json
- https://mirrors.tuna.tsinghua.edu.cn/
- http://mirror.esuni.jp/jenkins/updates/update-center.json
- https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
jenkins目录
- /var/lib/jenkins 主目录
- /etc/init.d/jenkins 启动文件
- /var/cache/Jenkins 程序文件
- /var/log/Jenkins 日志文件
用户权限
- 修改/etc/init.d/Jenkins
- 将用户修改成root,能够调用root工具
- 106行,113行
- 修改启动端口85行,$JENKINS_PORT
- systemctl daemon-reload
- service jenkins restart
卡启动问题
- 修改/etc/init.d/Jenkins
- 将用户修改成root,能够调用root工具
- 106行,113行
- 修改启动端口85行,$JENKINS_PORT
- systemctl daemon-reload
- service jenkins restart
备份
- tar zcf jenknis.tar.gz /var/lib/jenkins/
用到的插件有
GitLab Plugin(gitlab插件)

jenkins主机的私钥

gitlab的delopy是jenkins主机的公钥
构建的话,就会自动去gitlab上拉取项目到/var/lib/jenkins/workspace里面
SonarQube Scanner for Jenkins(功能与Scanner效果同样)
全局工具配置

系统配置

项目配置

Parameterized Trigger plugin(触发器插件)
用于一个项目构建完成后触发另外一个项目

Build Pipeline Plugin(流水线插件)

Gitlab Hook Plugin(gitlab勾子插件)
Build Authorization Token Root Plugin(受权令牌插件)

gitlab令牌认证就是webhook,咱们是点了若是有push就会执行

buildByToken/build?job=RevolutionTest&token=TacoTuesday
http://192.168.1.105:8080/project/demo-sonr-scan
http://192.168.1.105:8080/buildByToken/build?job=demo-sonr-scan&token=123456
Git Parameter(git参数构建插件)根据标签去发布
gitlab上须要打tag标签


SSH(ssh插件)


jenkins集群

节点管理,新建节点

会自动在设置的目录下载jenkins的slave的jar包

分配到节点

按角色受权
Role-based Authorization Strategy(插件)
全局安全配置

管理用户
添加2个用户,java,php

系统配置里面 Manage and Assign Roles 管理分配角色

分配角色

注意,在local role里面,JAVA-TEAM是没有的,因此用用户去写,好比JAVA,PHP用户便可。
用户java上来只能看到java开头的项目,用户php上来只能看到php开头的项目