jenkins : Pipeline [TODO]

Pipeline

Pipeline 字面意思就是流水线,很好用的 Jenkins 的一个插件,将很多步骤按顺序排列好,做完一个执行下一个。真实的工作环境有很多 job,比如先编译,然后执行静态代码检查、单元测试、然后部署服务器、服务器重启、进行 ui 测试等。我们需要对这些 job 进行一些设置将它们的上下游关系配置好。
这时候 Pipeline 就派上用场了。在 Jenkins 主页点击新建视图,然后选择 Build Pipeline View,然后填写 Select Initial Job,构建后的操作可以选择其他的 Job,以此类推,这样一个流水线就完成了。Pipeline 提供视图界面,你可以在视图上形象地看到整个构建计划的执行流程和完成度。

参考:
1. https://blog.c.163.com/2016/09/244/

jenkins : api 用于二次开发

1. jenkins 主界面右下角,可以点击 rest api 进行查看接口

例子:http://30.85.194.21:1688/job/android_test/api/json

参考:
1. http://www.5941740.cn/2016/03/05/%E4%BD%BF%E7%94%A8jenkins%E6%9E%84%E5%BB%BA%E8%87%AA%E5%8A%A8%E5%8C%96%E4%BB%BB%E5%8A%A1/

jenkins : 分布式搭建

1.
当我们使用多台服务器时,并且配置了tomcat或jboss集群服务,可通过jenkins的节点配置,将jenkins项目发布在不同服务器上(分布jenkins工作空间,部署项目到不同服务器的tomcat或jboss),这就形成了jenkins的分布式。节点服务器不需要安装jenkins(只需要运行一个slave节点服务),构建事件的分发由master端(jenkins主服务)来执行。

2.
slave 配置

注意:节点服务器上需要配置的路径最好跟master一致

节点服务器需要配置:
1. python 环境 sqlalchemy,python-pip,pymysql
2. android 环境 java,git,gradle,android-sdk,ndk
3. 数据库环境: 使用master 数据库

3. mesos [TODO]
4.

参考:
1. http://blog.csdn.net/e295166319/article/details/54134487 [节点配置]
2. http://www.jianshu.com/p/6ab04ba00f26 [跟我们的项目很类似][很有深度][重点][mesos]
3. http://chrisrc.me/categories/IT%E8%87%AA%E5%8A%A8%E5%8C%96/# [自动化系列中有几篇我们项目有用到]
4.http://www.10tiao.com/html/168/201603/402032767/1.html

jenkins : 优化 (一)

1. 版本升级
1. 下载 jenkins.war最新版本
2. 查找 jenkins.war 的位置
1. Typically it is /var/lib/jenkins
dpkg -L jenkins will help you find what files does a package install
3. 做好备份
4. 替换版本
2. 下载代码优化
1. 我们使用git clone 一般都是将所有分支的代码下载下来,再进行切换。
现在工程的代码越来越打,分支越来越多,每次下载都很吃力

参考:
1. http://blog.csdn.net/felix_yujing/article/details/54235536
2.

jenkins : 权限控制

 

在Jenkins中,如果你希望不同组的创建的job只对改组内的成员可见,怎么实现呢?正常情况下,每个用户登录Jenkins都能看到所有的JOB,那么如果分组管理JOB呢?

我们可以利用Role-based Authorization Strategy插件实现这一需求。

1、安装Role-based Authorization Strategy插件

wKioL1dD7Kywqns3AALxTUSK9to668.png

2、配置授权策略

系统管理==> Configure Global Security ==>访问控制==>授权策略==>选择“Role-Based Strategy”

wKiom1dD7MKDwsdJAAHwRcUJrC8447.png

3、创建用户

我这里创建了4个用户,teamamanager、teamamember、teambmanager、teambmember。

teamamanager为Team A的项目管理人员,teamamember为Team A的开发人员

teambmanager、teambmember分别为Team B的项目管理人员和开发人员。

wKiom1dD72XgKefwAAGoLN4JLjY840.png

3、配置Roles和授权

系统管理>>Manage and Assign Roles>>Manage Roles

wKioL1dD8PfjJrGIAABl69DnrNE103.png

wKiom1dD8AaCEmx7AAEKomWkmdA530.png

wKioL1dD9DLhVXl0AAgfcOTYPB8162.png

返回上一个页面,进入 Assign Roles 进行配置

wKioL1dD9I6RvyfVAAD5A1lQA6Q179.png

wKioL1dD9bHikeKNAAPtQkJoAks763.png

4、创建项目,登录验证

用admin管理员登录Jenkins,创建几个项目,其中给Team A创建的项目为TeamAAPIService,Team B创建的项目为TeamBUserService。

wKiom1dD9WvjutK_AAHFMR7ws50620.png

登录teamamanager账号,只能看到TeamAAPIService这个job,说明正则表达式过滤生效了

登录teamamember账号,也只能看到这一个job,且没有删除Project的权限

wKiom1dD9k_DyvtrAAFU-LP8S4Y163.png

wKioL1dD90OyX4wfAAGr2ogB0v4029.png

同理Team B的情况一样的。不再截图演示。上面就是权限分别的整个过程和思路,公司有多个组就设置多个组的规则。将来有成员加入或者移除,直接在 Assign Roles 中添加或者删除,非常方便。

参考:

  1. http://www.cnblogs.com/gao241/archive/2013/03/20/2971416.html
  2. http://ju.outofmemory.cn/entry/272423

jenkins : docker Kubernetes

 

参考:

  1. https://yeasy.gitbooks.io/docker_practice/content/kubernetes/quickstart.html [文档]
  2. http://suqun.org/2016/10/17/docker-jenkins/
  3. http://www.itdadao.com/articles/c15a800530p0.html [很详细]
  4. http://www.cnblogs.com/hahp/p/5812455.html
  5. http://blog.fleeto.us/content/jenkinscheng-zhao-kubernetes-de-chi-bang
  6. http://dockone.io/article/666
  7. https://github.com/GoogleCloudPlatform/continuous-deployment-on-kubernetes

 

 

jenkins : 优化 [TODO]

  1.  配置子节点,进行任务管理,设置从站 ,分布式搭建
  2. 使用Docker
  3. 插件开发
  4. 数据迁移
  5. 并行任务
  6. 构建完+自动化测试

 

参考:

  1. https://toutiao.io/posts/za7ca0/preview
  2. http://www.wxzhi.com/archives/799/vdlyf7q7b62dmgcv/
  3. https://read01.com/NjD5yJ.html
  4. https://blog.phpgao.com/docker_build_optimize.html
  5. https://jenkins.io/doc/book/blueocean/getting-started/ [官方文档]
  6. http://www.jianshu.com/p/f602bfebabbb
  7. http://www.cnblogs.com/zhuque/archive/2013/01/23/2873610.html
  8. http://discuss.greatops.net/t/jenkins/32  [详细]

android: jenkins 配置

  1.  设置jenkins时区
  2. 设置workspace 路径--参考链接[1]
  3. 设置邮件通知模版 —–参考链接[2]
  4.  邮件发送失败  ----参考链接[3]
    1. 管理员账号和默认发送账号不一致

 

 

 

 

参考:

[1]http://www.cnblogs.com/itech/p/5192162.html

[2] http://www.360logica.com/blog/2016/02/email-notification-in-jenkins.html

[3]http://www.cnblogs.com/asia90li/p/6418418.html