`
bookong
  • 浏览: 96530 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Jenkins使用经验谈3(管理节点)

    博客分类:
  • ci
阅读更多
现在我们已经搭建好了基本的Jenkins环境,在这一集里,我们说一说如何管理节点。
进入“系统管理”中的“管理节点”。



创建Windos系统的奴隶节点

先创建一台安装了Win7系统的虚拟机,作为Jenkins构建的奴隶节点。比如我这台机器IP为172.16.12.81,用户名为user1,密码为123456。然后在C盘创建路径 C:\ci_jenkins 作为Jenkins操作的根目录。另外还需要在这台机器上安装JDK或JRE,我以前配置时这里如果使用64位的JDK会有问题,所以我也不再实验了,这里直接安装32位的JDK。
在Jenkins的“管理节点”页面上,点击“新建节点”,类型选择“Dumb Slave”,名称比如叫“172.16.12.81_win7”,点击“OK”按钮进入设置页面。
其中“# of executors”我们选择4,表示可以同时进行4个构建。
“Remote FS root”填写之前创建的目录 C:\ci_jenkins
“Labels” 是这样的,假如你的需求是要求同时在 WindowsXP,Win7这两个操作系统上构建,你就创建两个奴隶节点,一个安装WindowsXP系统,一个安装Win7系统,这两个节点的名称不一样,但Labels 可以设置成一样的 win,这样在创建Job时指定在Label为win的节点上构建时,两台机器都会进行构建,当然这里可以用空格分隔地添加几个Label。
“Launch method”这里我们选择“Let Jenkins control this Windows slave as a Windows service”,这种配置方式有点自虐,不过配置好的话是最好用的。
点击“高级”按钮,在“Path to java executable”输入java路径,特别注意,不能写成 java.exe



保存后,点击“Launch slave agent”按钮。看到下面的错误信息:



别急,意料之中。在上个页面中你留意到有这么一个链接“subtle problems”,里面就是配置windows系统奴隶节点的常见问题。




我们回到Win7这台奴隶节点,按照链接里的内容好好修理修理它。
首选要保证这个用户是本地的“Administrator”组成员,如果你和我一样是在安装操作系统时创建的用户,这一条是满足的。
点击“开始”按钮,输入“gpedit.msc”,打开“本地组策略编辑器”。
在“计算机配置”→“管理模版”→“系统”→“用户配置文件”中,将“在用户注销时不要强制卸载用户注册表”设置为“已启用”。




下面就是设置防火墙的策略了,这个我嫌麻烦,干脆把防火墙关闭了。










接下来打开“注册表编辑器”




在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 下面创建一个 DWORD(32-位)值。




设置 LocalAccountTokenFilterPolicy 值 1。




按 Ctrl + F,搜索 “{76A64158-CB41-11D1-8B02-00600806D9B6}”,右键选择“权限”,需要注意的是,它在 HKEY_CLASSES_ROOT\CLSID 下。




点击“高级”




切换到“所有者”页签,将“当前所有者”修改为“Administrators”组。




再切换到“权限”页签,选择“Administrators”组,点击“编辑”按钮,修改成“完全控制”。




再把“所有者”切换回“TrustedInstaller”(NT Service\TrustedInstaller)




注册表都设置好以后,最好注销再登录一下,让注册表生效。
在“计算机管理”的“服务”中,找到“Remote Registry ”服务。




启动它,并设置启动类型为“自动”。




现在重新在Jenkins页面上点击“Launch slave agent”按钮。




看到已经成功连接的提示




回到首页,可以看到Win7的系统已经就绪。




创建类Unix系统(Linux,OSX等)的奴隶节点

对于类Unix系统,创建节点就要简单许多,一般默认都安装了SSH的服务,我们的计划是让Jenkins通过SSH来登录并管理奴隶节点。但通过用户名和密码访问SSH不是一个特别好的方式,我们可以配置通过私钥的方式来登录SSH。
比如我们以一台CentOS系统的虚拟机为例,假设IP为172.16.12.82。我们先在上面创建一个用于登录的用户jenkins。然后登录到这个用户。

[root@svr82 ~]# useradd jenkins
[root@svr82 ~]# su - jenkins
[jenkins@svr82 ~]$


生成一个密钥对(这中间会有几次询问,都直接输入回车)。

[jenkins@svr82 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jenkins/.ssh/id_rsa): 
Created directory '/home/jenkins/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/jenkins/.ssh/id_rsa.
Your public key has been saved in /home/jenkins/.ssh/id_rsa.pub.
The key fingerprint is:
6b:81:28:af:5e:54:bb:af:cf:e3:f5:2d:0a:aa:50:71 jenkins@svr82.vow.funshion.com
[jenkins@svr82 ~]$


现在可以看到在jenkins用户的家目录下的 .ssh 目录下创建了两个密钥:公钥 id_rsa.pub 和私钥 id_rsa。

[jenkins@svr82 ~]$ ls -l ~/.ssh/
总计 8
-rw------- 1 jenkins jenkins 1675 10-14 18:26 id_rsa
-rw-r--r-- 1 jenkins jenkins  412 10-14 18:26 id_rsa.pub


现在将公钥添加到这台主机的 authorized_keys 文件中,并修改权限为600

[jenkins@svr82 .ssh]$ pwd
/home/jenkins/.ssh
[jenkins@svr82 .ssh]$ cat id_rsa.pub >> authorized_keys	
[jenkins@svr82 .ssh]$ chmod 600 authorized_keys



现在 id_rsa 和 id_rsa.pub 这两个文件不是必须要保留的这台服务器上,但你要保存好 id_rsa 因为这个是访问此服务器的私钥。
还有一点需要特别注意的是假如你的 ~/.ssh 目录是自己手动创建的,或者 id_rsa 从其他地方拷贝来的,如果此时发现无法通过私钥进行 ssh 连接时,请检查下面文件/目录的权限是否和我列出的一样。

[jenkins@svr82 ~]$ ls -l ~/.ssh/authorized_keys 
-rw------- 1 jenkins jenkins 412 10-14 18:51 /home/jenkins/.ssh/authorized_keys
[jenkins@svr82 ~]$ ls -l ~/.ssh/id_rsa
-rw------- 1 jenkins jenkins 1675 10-14 18:26 /home/jenkins/.ssh/id_rsa
[jenkins@svr82 ~]$ ls -ld ~/.ssh  
drwx------ 2 jenkins jenkins 4096 10-14 18:51 /home/jenkins/.ssh



回到Jenkis的页面上,我们先来配置一下访问这个服务器的“Credential”,在Jenkins页面的左侧快捷栏中点击“Credentials”







这里面有个凭据域的概念,其实他的目的就是,假如我们配置了很多登录服务器的凭据,通过各个域来分类整理这些凭据,比如所有访问服务器A的凭据都在一个域里这种情况。我们目前暂时先不创建域,直接选择默认的“Global credentials”,点击左侧的“Add Credentials”添加访问服务器的凭据。





在“Kind”里,我们选择“SSH Username with private key”;“Username”这里输入登录上面服务器的用户名“jenkins”;“Private Key”这里选择“Enter directly”,输入内容就是上面步骤里创建的 id_rsa 文件内容。




下面在这台CentOS服务器上装好JDK,准备工作基本上完成了。

[root@svr82 ~]# java -version
java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)



下面在Jenkins的“系统管理”→ “管理节点”中点击“新建节点”,填写内容和之前创建Windows节点类似。




在“Launch method”中选择“Launch slave agents on Unix machines via SSH”;“Credentials”这里选择我们刚刚创建的凭据。

特别要注意的是“JVM Options”这里,“-Djava.awt.headless=true”不是每个类Unix系统都必须输入,但我发现在苹果的OSX系统中不设置会报错误“Can't connect to window server - not enough permissions.”。




连接成功!




现在我们有两个可以用的奴隶节点了:



  • 大小: 5.4 KB
  • 大小: 37.9 KB
  • 大小: 2.7 KB
  • 大小: 5.5 KB
  • 大小: 19.4 KB
  • 大小: 63 KB
  • 大小: 53.4 KB
  • 大小: 30.3 KB
  • 大小: 17.2 KB
  • 大小: 105.4 KB
  • 大小: 7.9 KB
  • 大小: 41.4 KB
  • 大小: 16.1 KB
  • 大小: 19.3 KB
  • 大小: 38 KB
  • 大小: 19.9 KB
  • 大小: 68.8 KB
  • 大小: 17 KB
  • 大小: 11.6 KB
  • 大小: 13.1 KB
  • 大小: 43 KB
  • 大小: 21.1 KB
  • 大小: 36.9 KB
  • 大小: 23.6 KB
  • 大小: 22.4 KB
  • 大小: 13.9 KB
  • 大小: 38.4 KB
  • 大小: 30.8 KB
  • 大小: 26.1 KB
分享到:
评论

相关推荐

    Jenkins节点机slave服务器关机后,开机后agent连接失败的解决方法

    文章目录方法1_普通执行java -jar agent.jar的命令来连接(失败)方法2_重新下载agent.jar然后赋权,再执行java -jar命令(失败)方法3_联系root用户管理员,执行java -jar命令(成功) 环境背景: Linux环境下,...

    Jenkins节点配置实现原理及过程解析

    Jenkins是一款广泛使用的持续集成工具,它允许开发者自动化软件构建、测试和部署的过程。在大型项目或分布式环境中,单个Jenkins主节点可能无法处理所有的工作负载,这时就需要配置Jenkins节点来扩展其能力。本文将...

    使用JIRA和Jenkins进行项目管理

    "使用JIRA和Jenkins进行项目管理" 使用JIRA和Jenkins进行项目管理是当今软件开发行业中一种常见的项目管理方式。JIRA是一款功能强大的项目管理工具,能够帮助团队成员进行项目跟踪、任务管理、缺陷跟踪等。Jenkins...

    windows下安装Jenkins 2.289.3 jenkins.msi

    jdk1.8支持的最后一个版本jenkins,验证可用Jenkins Jenkins 2.289.3 jenkins.msi jdk1.8支持的最后一个版本jenkins,验证可用Jenkins Jenkins 2.289.3 jenkins.msi jdk1.8支持的最后一个版本jenkins,验证可用...

    Jenkins上手使用说明

    - **调用远程机器**: 使用Jenkins节点(Node)功能来调用远程机器执行构建任务。 - **SSH远程执行**: 可以通过Send files over SSH 或 Execute commands over SSH 插件,在远程机器上执行脚本或命令。 #### Pipeline...

    jenkins 2.346.3.zip

    **Jenkins 2.346.3:持续集成与自动化服务器详解** Jenkins 是一款开源的持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)工具,广泛应用于软件开发流程中,帮助团队高效地管理和...

    Jenkins 2.387.3

    Jenkins 2.387.3 是一个高度可扩展的持续集成和持续部署(CI/CD)工具,广泛应用于IT行业的自动化部署流程。这个版本是专为Windows操作系统设计的安装包,旨在帮助开发者和运维人员更便捷地在Windows环境中设置和...

    jenkins使用文档.zip

    这个“jenkins使用文档.zip”将引导你一步步地设置和使用Jenkins,无论是新手还是有经验的开发者,都能从中受益,提升开发效率和软件质量。通过学习和实践,你将掌握如何利用Jenkins构建高效、可靠的软件交付流水线...

    Jenkins官方用户手册(Jenkins User Handbook)

    管理Jenkins还涉及到对Jenkins节点的管理,例如通过Groovy沙箱进行脚本审核,以及使用脚本控制台执行Groovy脚本进行操作。 ### 用户管理 在使用Jenkins时,管理员需要了解如何管理用户,包括创建、删除、禁用用户,...

    使用JIRA+Jenkins进行敏捷开发项目管理

    ### 使用JIRA+Jenkins进行敏捷开发项目管理 #### 一、引言 随着软件开发领域的不断进步,敏捷开发已成为主流方法之一。敏捷开发强调快速响应变化、持续交付可用的软件以及鼓励团队间的紧密协作。在这样的背景下,...

    Jenkins 2.401.3 LTS(war包)

    2.401.3 LTS 版本是 Jenkins 的长期支持(LTS)版本,这意味着它会得到更长时间的安全更新和支持,确保用户在使用过程中拥有稳定性和安全性。 对于 Jenkins 2.401.3 LTS 版本,其关键特性包括: 1. **兼容性**:此...

    Jenkins的安装与使用

    3. 灵活的插件管理:Jenkins 具有灵活的插件管理系统,能够轻松地安装和管理插件。 4. 权限管理:Jenkins 具有完善的权限管理系统,能够轻松地管理用户权限和访问控制。 三、Jenkins 安装 Jenkins 可以通过多种...

    jenkins基础使用教程

    Jenkins 基础使用教程 Jenkins 是一个功能强大且广泛使用的自动构建工具,它可以帮助开发者自动化构建、测试和部署应用程序。在这篇教程中,我们将学习如何配置 Jenkins,使用 Maven 进行项目构建。 Jenkins 的...

    jenkins使用手册

    这个使用手册将带你深入理解 Jenkins 的核心概念、安装与配置、插件管理以及如何构建一个有效的 CI/CD 工作流程。 1. **Jenkins 安装与配置** - **下载与安装**:Jenkins 可以通过下载其可执行 war 文件在任何支持...

    Jenkins 使用指南 精简版

    ### Jenkins 使用指南精简版...通过上述内容,我们不仅了解了Jenkins的基础使用方法,还掌握了如何通过插件管理和高级配置来提升Jenkins的功能性和安全性,这对于实际工作中的持续集成和持续部署具有重要的指导意义。

    Jenkins使用手册.pdf

    Jenkins使用手册详细介绍了如何使用Jenkins进行项目的构建、监控和管理。下面将详细说明手册中提及的关键知识点。 1. Jenkins首页:Jenkins首页是用户与Jenkins交互的起点,它提供了导航到其他页面的入口。首页的...

    Jenkins 实操部署指南

    接下来,我们详细介绍如何通过 Jenkins 创建任务、管理节点及进行用户权限管理等。 1. **创建任务**: - 在 Jenkins 主界面点击“新建”按钮。 - 输入 Item 名称,并选择任务类型,通常选择“自由风格的软件项目...

Global site tag (gtag.js) - Google Analytics