(二)Jenkins配置主从节点实例

摘要:
4.从节点配置和相关配置中从节点机创建jenkins用户,并从一些环境配置中创建jenkings用户的ssh密钥,用于指定上述配置界面的ssh启动模式;在配置启动模式和项目源代码管理中从远程仓库获取源代码;创建Jenkins用户并使用root登录到远程子节点计算机。#adduserjenkins#passwdjenkins生成Jenkins用户的ssh密钥。我们当前以root用户身份登录。

1. 概述      

      jenkins安装在一台主机上,所有的jobs都在这台机器上运行,如果运行太多jobs时,会形成等待,节点存在就是解决这个问题提高效率,安装jenkins的主机称为master机,而其它机器就属于master的分节点,即slave节点;利用其它主机用执行jenkins的jobs,则需要一些配置,形成两台机器互通,当然下面的例子使用用另外一台主机当做slave是。

2. 环境准备

主机名                           ip                            角色

jenkins-master         192.168.3.16               jenkins的Master节点   tomcat8 jenkins maven jdk8

jenkins-slave            192.168.3.13               jenkins的Slave节点  slave.jar jdk8 maven

gitlab.jackyops.com  192.168.3.15            gitlab

3. 安装Jenkins

     只需要在master主机上安装Jenkins就可以了,其他的从节点不用安装。通过slave.jar运行的。 
首先从官网下载最新版Jenkins,https://jenkins.io/index.html
由于现在Jenkins更新挺频繁的,问题当然也就不少了,最好选择安装LTS Release版本。

4.  从节点配置及相关的配置

从节点机器上创建jenkins用户,用于执行构建任务,以及一些环境配置
创建从节点机器jenkins用户的ssh密钥,用于指定上面配置界面启动方式为ssh的;
创建Jenkins Credentials认证,在配置启动方式和项目源码管理从远程仓库获取源码需要;
将jenkins用户的公钥部署到Gitlab远程仓库,用于免密码下载源码。

在从节点主机执行如下命令:

创建Jenkins用户
使用root登录远程子节点机器,执行以下命令创建Jenkins用户:

# adduser jenkins

# passwd jenkins

生成jenkins用户的ssh密钥
我们目前是root用户登录,为了方便操作,切换到我们刚刚创建的jenkins用户:

# su - jenkins
然后生成密钥:

$ ssh-keygen -t rsa
一路回车默认空密码即可,最终会在/home/jenkins/.ssh目录中生成公钥id_rsa.pub和私钥id_rsa这两个文件。

添加ssh认证文件,方便远程机器无密码登录jenkins用户。

$ cd ~/.ssh
$ touch authorized_keys

将主(master)机器上做免密码登录到slave主机上
# ssh-copy-id -i /root/.ssh/id_rsa.pub jenkins@192.168.3.13

注意:

 .ssh 文件夹权限需要设置成700

.authorized_keys文件权限需要设置600

5.创建Jenkins Credentials(任据)认证

回到master主服务器Jenkins的首页,点击左边的任据,如下图:

(二)Jenkins配置主从节点实例第1张

添加凭据

(二)Jenkins配置主从节点实例第2张Username 栏填写之前从节点上创建的jenkins用户

Private Key,栏复制从节点jenkins用户生成的私钥的内容即可,一般在/home/jenkins/.ssh/id_rsa

其它的不用填写

最后点击OK,完成Jenkins Credentials认证的创建。

6. 部署jenkins用户公钥到Gitlab 

登录自建的Gitlab服务器,点击头像,选择Settings,然后再选择SSH Keys,复制公钥到指定位置即可,如下图所示:

(二)Jenkins配置主从节点实例第3张

7. 配置Master节点

    通过下载jenkins war包,然后直接tomcat中的/opt/tomcat-jenkins/webapps/目录中,通过http://192.168.3.16:8080/jenkins访问,关于Jenkins其他的基本配置这里就不多介绍了,直接配置从节点。

进入Jenkins服务器的首页,系统管理》管理节点》新建节点

输入节点名,选择Permanent Agent,点击【OK】进入下一步

(二)Jenkins配置主从节点实例第4张

2. 按下图配置好后,点击【save】保存,保存成功后回到节点列表

配置从节点,按照如下所示输入,加粗文字注意一下:
配置项    配置
名称    填节点名称
描述    节点描述
并发构建数    并发数量
远程工作目录    填写从节点上jenkins agent的工作目录,推荐只用绝对路径,如/home//jenkins-agent。注意jenkins要有该目录的读写权限
标签    不改动。jenkins可以通过标签指定一组从服务器运行某个构建任务
用法    不改动。可以指定什么情况下使用该从节点,可以有“尽可能使用该节点”和“只有任务指定了使用该节点时,才用该节点运行”两种选择
启动方法    选择”launch slave agents via SSH”
主机    填写从服务器的ip或域名
Credentials    填写SSH认证信息,(可用户密码认证或SSH密钥认证方式)
Host Key Verification Strategy    选择 Manually Trusted Key Verification Strategy,这会在完成配置后,第一次连接从节点时要求我们手动确认当前连接的从节点的身份。说明一下,Host Key 验证是用来防止中间人攻击的
Require manual verification of initial connection    选中
Availability    不改动。可用性
高级——java路径    填写从主机上的java的路径,可以使用which java 查看。如果这里不填,jenkins会扫描一些特定路径,如果扫描不到java,就会报错,所以建议填写
环境变量   勾选上,并填写运行构建任务所需要的环境变量。建议填上JAVA_HOME,免得jenkins运行构建任务时找不到java。

(二)Jenkins配置主从节点实例第5张

填完之后,点击【保存】 

(二)Jenkins配置主从节点实例第6张

点击启动代理按钮下载slave-agent.jnlp,放到节点机器上,双击启动(节点机器必须有jdk环境,因为需要javaws.exe来启动)

从节点远程工作目录会生成如下文件

[root@tcpip01 jenkins-salve ]# tree /data/jenkins/
/data/jenkins/
└── slave.jar

创建Jenkins项目

Jenkins的首页,点击左边最上面的新建来创建项目,构建一个自由风格的软件项目,出现下面界面: 

(二)Jenkins配置主从节点实例第7张

项目配置 

(二)Jenkins配置主从节点实例第8张

从节点执行后结果如下

[root@jenkins-slave home]# tree -L 3 /home/jenkins/
/home/jenkins/
├── slave.jar
└── workspace
    ├── blog-solo2
    │   ├── CHANGE_LOGS.html
    │   ├── docker-compose.yml
    │   ├── Dockerfile
    │   ├── gulpfile.js
    │   ├── LICENSE
    │   ├── package.json
    │   ├── pom.xml
    │   ├── README.md
    │   └── src
    └── blog-solo2@tmp

免责声明:文章转载自《(二)Jenkins配置主从节点实例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android 帧动画使用SqlServer数据库存入decimal类型数据注意事项下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

计划任务中使用NT AUTHORITYSYSTEM用户和普通管理员用户有什么差别

原文地址:http://www.ynufe.edu.cn/metc/Article/ShowArticle.asp?ArticleID=805 系统管理员会碰到这种问题,为什么在更改系统登录用户password后,原先定制的计划任务都没有运行呢? 在计划任务的列表文件夹下,状态一栏被告知“因为输入了错误的password和username,计划的任务...

手把手教你用Jenkins CI 自动部署Docker + 使用阿里云镜像服务自动构建+ webhook触发

Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么?你妹的. 好好好,我们还是来手把手教程好了. 首先安装JDK8 添加安装源之后直接apt-get install就好,下面是ubuntu的安装命令,其他系统...

基于windows server 2012 的微软桌面虚拟化实战教程

http://abool.blog.51cto.com/8355508/1587489/  Windows Server2012 中的“远程桌面服务”服务器角色中就提供了允许用户连接到虚拟机、RemoteApp 程序和基于会话的计算机的技术。通过远程桌面服务,用户可以从企业网络或 Internet 访问远程连接。Windows Server 2012 中的...

浅谈前端SPA(单页面应用)

    单页Web应用(single page web application,SPA): SPA 是一种特殊的 Web 应用,是加载单个 HTML 页面并在用户与应用程序交互时动态更新该页面的。它将所有的活动局限于一个 Web 页面中,仅在该 Web 页面初始化时加载相应的 HTML 、 JavaScript 、 CSS 。一旦页面加载完成, SPA...

Jenkins 构建JavaHelloWorld

注意:我们知道Jenkins通过master/slave来支持分布式的job运行,这里的JavaHelloworld运行在master,即Jenkins所在的机器。 一 Java的HelloWorld程序 Ant构建脚本:c:\JavaHelloWorld\build.xml <projectname="HelloWorld"basedir="...

集群Cluster介绍

来源:http://www.ibm.com/developerworks/cn/linux/cluster/lw-clustering.html简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一...