基于Jenkins分布式调度管理公有云多租户的架构浅谈

作者:李佩京
时间:2017-12-28


基于Jenkins分布式集群管理公有云多租户的架构浅谈

Jenkins简介

Jenkins最开始被称为Hudson,它在持续集成领域的市场份额居于主导地位,是什么使Jenkins如此成功呢?首先,Jenkins拥有良好的扩展性,通过插件能够解决各类场景。其次,Jenkins的开源社区活跃度非常好。

Jenkins分布式构建

在这里插入图片描述

  • 基于Jenkins的分布式构建能力,可以解决多租户任务执行统一调度的需求。如上图示,通过Jenkins-master进行所有任务的管理,由agent进行不同租户的任务执行,从而实现分布式构建的能力。

  • Jenkins使用主/从架构来管理分布式构建。主节点(Master)的工作是处理调度构建作业,把构建任务分发到从节点(agent)来进行实际执行,监视从节点,并且记录和发送构建产物。

  • 从节点按照被告知的Jobs,执行主节点分派的构建作业。从节点在远程机器上运行小的Java可执行文件,以及监听来自Jenkins主实例的请求。
    在这里插入图片描述## 演示:
    Master IP:1.1.1.1 Agent-tag1 IP:10.1.0.51(模仿租户1) VPC3 IP:10.1.0.55(模仿租户1的集群) Agent-tag2 IP:10.1.0.52(模仿租户2) VPC4 IP:10.1.0.54(模仿租户2的集群)

  • testSlave1该Job只允许在Agent-tag1上执行,Agent-tag1通过Ansible,操作VPC3
    aa

  • 此处使用ifconfig命令测试。点击构建后
    aa

  • 查看 Console Output,控制台输出如下:
    aa

  • 输出了VPC3的ifconfig命令执行结果,即实现了Master通过执行job控制Agent-tag1,使VPC3执行命令。

迈入Jenkins的第一步:准备环境

依赖配置: 2.54 (2017-04) 以上版本: Java 8, 1.612 (2015-05) 以上版本: Java 7

扫描二维码关注公众号,回复: 8729451 查看本文章
yum -y install java # 默认在Centos7系统上会安装openJDK1.8版本

测试配置是否生效

[[email protected] ~]$java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

迈入Jenkins的第二步:安装

使用yum安装,安装步骤如下:

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum makecache
yum -y install jenkins

默认安装文件的位置:

/etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。
/var/lib/jenkins/:默认的JENKINS_HOME。
/var/log/jenkins/jenkins.log:Jenkins日志文件

迈入Jenkins的第三步:启动服务

通过systemctl启动,适用于采用yum安装和RPM安装的Jenkins

systemctl start jenkins  # 启动Jenkins服务
systemctl enable jenkins # 将Jenkins服务加入开机启动项

注意:如果JDK环境变量不在如下所示路径中,请将系统JDK路径加至/etc/init.d/jenkins–>candidates字段中。 使用which java查看java的目录

which java
/usr/java/jdk1.8.0_151/bin/java
vim /etc/init.d/jenkins

candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
# 添加java命令路径
/usr/java/jdk1.8.0_151/bin/java
"

迈入Jenkins的第四步:验证Jenkins是否启动

默认情况下Jenkins使用8080端口,使用netstat -ntlp查看8080端口是否启动

netstat -ntlp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2511/sshd           
tcp6       0      0 :::8080                 :::*                    LISTEN      29373/java          
tcp6       0      0 :::22                   :::*                    LISTEN      2511/sshd 

迈入Jenkins的第五步:登录Jenkins页面

  • 在地址栏输入:1.1.1.1:8080(此处我的虚拟机地址为1.1.1.1),就可以进入jenkins得管理界面。
  • 需要输入初始的密码,初始密码在/var/lib/jenkins/secrets/initialAdminPassword。
    aa
  • 选择安装插件(install suggested plugs)
  • 设置管理员账户
  • 大功告成,尽情享用吧
    aa

迈入Jenkins的第六步:分布式构建

  • 创建Jenkins从节点(agent),在系统管理–>管理节点,点击新建节点,并配置节点
    aa
    aa
    重点详解

1)用法Usage有三个选项:

  • 第一个选项“Utilize this slave as much as possible” 尽可能的使用这个节点,只要该节点变得可用,就告诉Jenkins自由使用这个节点。
  • 第二个选项“Leave this machine for tied jobs only” 只允许运行绑定到这台机器的job,该节点仅保留为特定作业。(此处我们选择该选项)

2)启动方法

  • 主节点通过ssh启动从节点代理。(Linux环境中,最方便的方式着重描述,此处我们选择该项)
  • 使用Java Web Start手工启动从节点代理。(如果服务器不能连接到从节点或者从节点为Windows系统,则使用这种方式;缺点是从节点不能被Jenkins自动启动或者重启)
  • 把从节点代理安装为Windows服务(适用于Windows机器)
  • 直接在从节点命令行启动从节点代理(如果没有可用的用户界面,SSH受限的情况下可以使用)

3)SSH启动从节点: 主机输入slave的ip地址 Credentials后面的add按钮可以选择用户名+密码形式或者选择采用秘钥形式
在这里插入图片描述

  • Host Key Verification Strategy 主机密钥验证策略(Jenkins会找/var/lib/jenkins/.ssh/known_hosts中是否有agent记录)
  • Known hosts file Verification Strategy 已知主机文件验证策略(手动填入私钥)
  • Manually provided key Verification Strategy 手动提供关键的验证策略(此处选择该项)
  • Non verifying Verification Strategy 无验证验证策略(该选项安全性最低,不建议选择)

4)Available 配置从节点的启动和停止时间

  • Keep this slave agents on-line as much as possiable 尽量保持代理在线,jenkins只需保持运行的从节点并且在需要时使用它。 (此处选择该项)
  • Take this slave on-line when in demand and off-line when idle 有需要时保持代理在线,空闲时离线
  • 根据时刻表让代理上线

5)环境变量

  • 如果agent采用默认的yum安装openjdk时,不需要添加JAVA_HOME变量路径
  • 如果采用Oracle JDK编译安装,需要添加JAVA_HOME变量路径

6)点击从节点,点击Launch agent启动新节点。
在这里插入图片描述
在这里插入图片描述

迈入Jenkins的第七步:创建Jobs

  • 点击新建–>选择“构建一个自由风格的软件项目”
    在这里插入图片描述
    在这里插入图片描述
  • 勾选Restrict where this project can be run选项,指定执行Job的Agent
    在这里插入图片描述
  • 在构建项中选择Execute Shell,在Command中输入要执行的命令
    在这里插入图片描述
  • 点击项目名称,在左侧选项栏选择立即构建

aa

  • 点击Build History–>Console Output查看构建输出结果
    aa
发布了82 篇原创文章 · 获赞 0 · 访问量 2558

猜你喜欢

转载自blog.csdn.net/zhinengyunwei/article/details/104049435
今日推荐