Note: There is no need to install Jenkins on the slave machine.

  1. On your master machine go to Manage Jenkins > Manage Nodes.
  2. New Node --> Enter Node Name.
  3. Select Dumb Slave --> Press OK.
  4. Fill out the following:
    1. Set a number of executors (one or more) as needed.
    2. Set a Remote FS Root, a home directory for the master on the slave machine.
      1. For a Windows slave, use something like: "C:\Jenkins\"
      2. TODO: add details.
    3. Select the appropriate Usage setting:
      1. For an additional worker: Utilize this slave as much as possible
      2. For specialized jobs: Leave this machine for tied jobs only
    4. Launch Method:
      1. An easy way to control a Windows slave is by using Launch slave agents via Java Web Start  (Recommended for Windows)
      2. TODO: add steps for other methods.
    5. Availability --> Keep this slave online as much as possible
      1. TODO: add details for each option.
    6. Press OK.
  5. Now you need to connect your slave machine to the master using the following steps.
    1. Open a browser on the slave machine and go to the Jenkins master server url (http://yourjenkinsmaster:8080).
    2. Go to Manage Jenkins > Manage Nodes, Click on the newly created slave machine. You will need to login as someone that has the "Connect" Slave permission if you have configured global security.
    3. Click on the Launch button to launch agent from browser on slave.
    4. Run the program.
      ### If you encounter connection issue, then you could enlarge the popup windows to see the master port used and check your network configuration (firewall, port forward, ...)
    5. Now you should see the Slave machine connected under Nodes.
  6. If you want the service to run on start-up of the slave machine do the following (Windows only directions):
    1. In the Slave agent program running on your slave machine,
    2. click File --> Install as Windows Service. 

      Note that this feature requires ".Net Framework 3.5"
    3. Start, type Services and Select the Services program.
    4. Find Jenkins Slave in the list, Double click to open.
    5. Select Startup type --> Automatic.
    6. Go to the Log On tab, change the Log on as to a user of your choice (Special user account Jenkins recommended).
    7. Make sure that auto login is set for the slave machine for the user account, then the VM (or physical computer) should connect and be available when needed.

Also: take a look at Distributed builds

https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines+on+Windows

slave节点机器配置

  • 创建jenkins用户

用root用户登录slave节点,首先创建jenkins用户,并指定主目录

$ useradd -m jenkins -d /home/jenkins

查看jenkins用户及组的信息

$ id jenkins
uid=500(jenkins) gid=500(jenkins) 组=500(jenkins)

再修改jenkins密码,若不修改是未知的

$ passwd jenkins

再切换到jenkins用户,确保jdk已安装

$ su - jenkins

同时确保slave已安装jdk

$ java -version

且sshd正确运行

$ service --status-all | grep ssh
  • 创建公钥私钥,实现免用户密码登录

使用jenkins用户登录到jenkins master机器

使用jenkins用户登录时若发现连接失败(lost connection),可以先用root用户登录,打开/etc/passwd,找到

jenkins:x:498:499:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/false

将最后的/bin/false改为/bin/bash,便可以登录。记得使用完改回去,猜测是安全限制。

jenkins用户登录后执行以下命令,生成公私钥

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /var/lib/jenkins/.ssh/id_rsa

将公钥和私钥保存到jenkins主目录下,注意确保.ssh目录和id_rsa都是jenkins用户所拥有或者有可读写权限

然后会要求输入passphrase(密码),这里还是不设置,直接两次enter

进入/var/lib/jenkins/.ssh,使用scp命令将生成的公钥id_rsa.pub拷贝到各个slave节点,并命名为authorized_keys

$ scp id_rsa jenkins@xxx.xxx.xxx.xxx:~/.ssh/authorized_keys

同时要修改authorized_keys的权限,

$ chmod 700 authorized_keys

Jenkins控制台slave配置

回到jenkins控制台,打开以下页面,添加credentials,以下配置页面是添加slave的jenkins用户密码

另一种ssh免密码登录配置(基于公开密钥的认证),可指定jenkins master私钥的路径或者选择第三个From the Jenkins master ~./ssh,我们选择/var/lib/jenkins/.ssh/id_rsa,这是在上一节创建的私钥

创建slave

进入“系统管理>管理节点>新建节点”,输入节点名称,我已经建了一个节点,所以可以选择复制

进入配置页面,按要求填写,credentialsp这里选择用户密码登录,免密码登录需要指定一个属于它的id_rsa。

保存之后,点击Relaunch agent,启动节点

https://segmentfault.com/a/1190000008369457

作为slave的Linux机器为centos系统。

1) Linux 的 Slave机器设置

创建jenkins用户sudo /usr/sbin/useradd -m jenkins -d /home/jenkins;

查看jenkins用户及组的信息id jenkins :

uid=506(jenkins) gid=506(jenkins) groups=506(jenkins) ;

使用sudo /usr/bin/passwd jenkins来设置用户jenkins的密码为0;

切换到用户jenkins环境下su - jenkins;

确保java安装正确:java --version;

确保sshd正确运行: /sbin/service --status-all | grep ssh;

安装ant,在root下运行yum install ant;

2) 在Slave的linux机器上创建public/private key pair:

确保当前用户为jenkins;

执行ssh-keygen来创建public/private key pair,直接enter,表示key将存储在/home/jenkins/.ssh/id_rsa下,再直接enter,表示不设置密码,再次enter确认密码为空;

创建authorized_keys:

cd .ssh

cat id_rsa.pub > authorized_keys

chmod 700 authorized_keys

;

将id_rsa(相当于privatekey)拷贝到jenkins master机器上,例如c:\jenkins\id_rsa下。

3)创建Slave(note),配置如下:

确保jenkins 中ssh slave plugin正确安装,一般默认安装。

然后lunch slave,使得master和slave通过ssh成功连接。其实launch的时候jenkins自动地从http://yourserver:port/jnlpJars/slave.jar拷贝slave.jar到slave,然后运行通过命令java -jar slave.jar来运行slave。

4)在新建的Linux的Slave上运行上节中的JavaHelloWorld(Jenkins 构建JavaHelloWorld),且需要修改JavaHelloWorld job的Label为JavaHelloWorldLinux来使用此slave,运行如下:

完!

http://www.cnblogs.com/itech/archive/2011/11/10/2244690.html

Step by step guide to set up master and slave machines on Windows的更多相关文章

  1. Step by step guide to set up master and slave machines(转)

    Note: There is no need to install Jenkins on the slave machine. On your master machine go to Manage ...

  2. Tomcat Clustering - A Step By Step Guide --转载

    Tomcat Clustering - A Step By Step Guide Apache Tomcat is a great performer on its own, but if you'r ...

  3. Step by Step use OBD2 Scanner Guide

    Learning to use a good automotive OBD2 code reader is one of the best ways you can continually inves ...

  4. Step by step Dynamics CRM 2011升级到Dynamics CRM 2013

    原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html 转载请注明出处 (一)检查Customizations 从2011升级到2013有一些legacy f ...

  5. [转]Bootstrap 3.0.0 with ASP.NET Web Forms – Step by Step – Without NuGet Package

    本文转自:http://www.mytecbits.com/microsoft/dot-net/bootstrap-3-0-0-with-asp-net-web-forms In my earlier ...

  6. Devops step by step

    接着上次分享的devops历程[Followme Devops实践之路], 大家希望能够出一个step by step手册, 那今天我就来和手把手来一起搭建这么一套环境, 演示整个过程! 实验环境需要 ...

  7. PyTorch in Action: A Step by Step Tutorial

    PyTorch in Action: A Step by Step Tutorial   PyTorch in Action: A Step by Step Tutorial Installation ...

  8. Git Step by Step – (8) Git的merge和rebase

    前面一篇文章中提到了"git pull"等价于"git fetch"加上"git merge",然后还提到了pull命令支持rebase模式 ...

  9. Step by Step Process of Migrating non-CDBs and PDBs Using ASM for File Storage (Doc ID 1576755.1)

    Step by Step Process of Migrating non-CDBs and PDBs Using ASM for File Storage (Doc ID 1576755.1) AP ...

随机推荐

  1. linux内核 container_ofC语言之应用

    之前在剖析内核链表的文章中就有说到这个 container_of宏展开后的应用技巧. //offset(struct list , list);----->展开后((size_t) & ...

  2. Gradle 1.12用户指南翻译——第三十五章. Sonar 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  3. Linux文件与目录管理 - ls, cp, mv

    [root@www ~]# ls [-aAdfFhilnrRSt] 目录名称 [root@www ~]# ls [--color={never,auto,always}] 目录名称 [root@www ...

  4. Database Initialization Parameters for Oracle E-Business Suite Release 12

    In This Document Section 1: Common Database Initialization Parameters For All Releases Section 2: Re ...

  5. C语言在linux内核中do while(0)妙用之法

    为什么说do while(0) 妙?因为它的确就是妙,而且在linux内核中实现是相当的妙,我们来看看内核中的相关代码: #define db_error(fmt, ...) \ do { \ fpr ...

  6. Smali语法汇总(二)

    Opcode 操作码(hex) Opcode name 操作码名称 Explanation 说明 Example 示例 0F return vx 返回在vx寄存器的值. 0F00 - return v ...

  7. HBase快照

    CDH是Cloudera的完全开源分布式Apache Hadoop及相关项目(包括Apache HBase).CDH的当前版本(4.2)引入的一个HBase新特性最近加入到了主干中,允许用户对指定表进 ...

  8. day07_Tomcat服务器与http学习笔记

    ============================================================ 一.Tomcat服务器(很熟悉) 1.Web开发概述 WEB,在英语中web即 ...

  9. combinations(组合)

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...

  10. 北京一家JAVA开发公司面试题(留给后人)

    1.jsp有哪些内置对象?作用分别是什么? 2.描述一下servlet的生命周期和基本架构. 3.多线程有几种实现方法,都是什么? 同步有几种实现方法,都是什么? 4.作用域public   priv ...