jenkins面试题

jenkins是什么?
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。


为什么要用jenkins?
把jenkins权限分给开发和测试,将打包发布流程变得简单化,及时发现bug。
减少人工干预,降低风险。

jenkins的优势是什么
Jenkins的优势包括:
在开发环境的早期阶段, 错误跟踪很容易。
提供大量的插件支持。
对代码的迭代改进。
构建失败会在集成阶段进行缓存。
对于每个代码提交更改, 都会生成一个自动生成报告通知。
通过简单的步骤, 即可自动完成maven发布项目。


jenkins你都用了哪些插件
安装GitLab和GitLab Hook 配置Gitlab的相关认证,同时也支持GitLab的Webhook触发
Maven 构建mvn项目相关
Workspace Cleanup Plugin 清理工作目录
Publish Over SSH 通过SSH拷贝文件到目标机器,同时可以在目标机器上执行脚本
Role-based Authorization Strategy  基于角色的的用户权限控制


jenkins怎么备份恢复
主要拷贝家目录下面.jenkins目录,jenkins生成的配置,插件和job都在里面


如何配置 Jenkins 的 job
关于这个答案的解决方法是首先提一下如何创建 job:转到 Jenkins 首页,选择“New Job”,然后选择“Build a free-style software project”。然后你可以设置这个自由式 job 的元素:
• 可选的 SCM,例如源代码所在的 CVS 或 Subversion。
• 用于控制 Jenkins 何时执行构建的触发器。
• 某种构建脚本,用于执行实际工作的构建(ant,maven,shell 脚本,批处理文件等)。
• 从构建中收集信息的可选步骤,例如归档制品、记录 javadoc 和测试结果。
• 配置构建结果通知其他人/系统的步骤,例如发送电子邮件、即时消息、更新问题跟踪器等。



什么是持续集成
开发人员每天多次将代码集成到共享代码库中。然后通过自动构建来验证每次代码的修改,以便团队尽早发现问题。
我建议你解释一下在以前的工作中是如何实施持续集成的,可以参考以下示例:

 

在上图中:
1. 开发人员将代码 clone 至私有工作区。
2. 完成编码后,他们将更改提交至共享代码库中(版本控制仓库)。
3. CI 服务器监视代码仓库并在发生更改时检出更改。
4. 紧接着 CI 服务器提取这些变更进行构建、运行单元以及集成测试。
5. CI 服务器会立即告知团队构建成功与否。
6. 如果构建失败,CI 服务器会向团队发送告警。
7. 研发团队将尽快解决问题。
8. 这个过程会不断重复。





修改jenkins主目录
vim catalina.sh
# OS specific support. $var _must_ be set to either true or false.
export JENKINS_HOME="/data/jenkins_home"

vim /etc/profile
export JENKINS_HOME="/data/jenkins_home"
source /etc/profile


jenkins手动重启的方式
1、(Jenkins_url)/ restart:强制重启, 而无需等待构建完成。
2、(Jenkin_url)/ safeRestart:允许所有正在运行的构建完成。



什么是jenkins pipline?
Pipeline,简而言之,就是一台运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。
Jenkins Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施。


什么是jenkinsfile?为什么使用jenkinsfile
Jenkinsfile是一个文本文件,其中包含Jenkins Pipeline的定义,并已签入源代码管理
虽然用于定义管道的脚本语法和jenkinsfile类似,但通常认为在项目中定义管道Jenkinsfile并检查源代码管理是最佳实践。

为所有分支和请求自动创建一个管道构建过程。
管道上的代码审查/迭代。
审核追踪管道


如何保证 Jenkins 的安全? 
确保 global security 配置项已经打开。
确保用适当的插件将 Jenkins 与企业员工目录进行集成。
确保启用项目矩阵的权限访问设置。
通过自定义版本控制的脚本来自动化 Jenkins 中设置权限/特权的过程。
限制对 Jenkins 数据/文件夹的物理访问。
定期对其进行安全审核。
确保 global security 配置项已经打开。
确保启用项目矩阵的权限访问设置。


 

 




posted @ 2021-09-03 10:08  xiaosafengfei  阅读(1465)  评论(0编辑  收藏  举报