Linux下jenkins的slave配置

来源:互联网 发布:python 日志模块 编辑:程序博客网 时间:2024/06/05 08:21


Jenkins配置slave具体步骤

1进入Jenkins找到“系统管理”

 

进入Jenkins系统管理页面找到“管理节点”

 

3在节点管理菜单中找到“新建节点”

4新建节点页面中输入节点名称,选择Dumb Slave,点击OK

 

1 配置Slave页面

 

 

*executors的数量,1或多个;是可以同时build的进程数

*输入Slave 上的跟目录;这个是远程机器上用于放置Jenkins工作目录的位置

*标签:这个标签用于跟Job 关联

*Usage选择:Leave this machine for tied jobs only用法

*Lunch Method选择:Launch slave agents via Java Web Start 启动方法

* Avaliablitiy选择:Keep this slave online as much as possible

然后保存;

2 启动 Slave 子服务器

 

点击slave01 

 

启动方式3种,本文选取第二种方式,

 

项目构建时选择对应 Label Expression即可

 

 

遇到的问题是:下拉这个File菜单就有一个选项他会提示你是否想设置为一个自启动的服务。可能将当前的slave设置成一个服务,每次机器重启的时候都自动启动slave服务,这样就不能每次都去启动这个slave agent了。如下图 ,估计是我用的虚拟机的问题,在Windows下升级服务成功

 

 

 

 

启动方法选用通过ssh 连接slave所在服务器

 

 

Launch时 日志信息如下:

解决办法--参考如下连接

http://stackoverflow.com/questions/32139098/cannot-connect-to-jenkins-slave-using-root-user/32140361

ssh连接时保证ssh -p 22 slaveIP 成功  Telnet slaveIP 成功。

拓展知识:

检查telnet是否已安装:

[root@iZ94imebuqwZ ~]# rpm -qa telnet
telnet-0.17-41.e15 【有输出说明已安装,如果没有输出则没有安装,使用yum install telnet进行安装】

检查telnet-server是否已安装: 

[root@iZ94imebuqwZ ~]# rpm -qa telnet-server
telnet-server-0.17-41.el5 【有输出说明已安装,如果没有输出则没有安装,使用yum install telnet-server进行安装】

如果第2步进行了telnet-server安装操作,且已成功安装,则由于telnet服务是由xinetd守护的,所以我们需要重新启动xinetd。 

[root@iZ94imebuqwZ ~]# service xinetd restart

Stopping xinetd: [ 
OK ]

Starting xinetd: [ 
OK ]

xinetd启动成功,可以查看xinetd的运行情况[root@iZ94imebuqwZ ~]# netstat -tnlp 【或使用netstat -tnl | grep 23只查看目标端口】

如果仍然无法连接到telnet,需要修改/etc/xinetd.d/telnet文件。

如何启动linux的telnet服务

步骤如下:

1。如果安装了telnet、telnet-server的rpm包,就跳到2。,否则安装这个包。

2。修改telnet服务配置文件

vi /etc/xinetd.d/telnet

service telnet

{

disable = yes

flags = REUSE

socket_type = stream

wait = no

user = root

server = /usr/sbin/in.telnetd

log_on_failure += USERID

}

将disable=yes行前加#,或者改为disable=no

3。重新启动xinetd守护进程

由于telnet服务也是由xinetd守护的,所以安装完telnet-server,要启动telnet服务就必须重新启动xinetd

[root@localhost root]#service xinetd restart

4。关闭系统的防火墙

linux系统默认的防火墙是“high”。

(方法:[root@localhost root]# setup

选择:“firewall configuration”

选择:security level——“no firewall”)

5。如果想允许root以telnet登入linux主机?因为 telnet 不是很安全,自然预设的情況之下就是无法允许 root 以 telnet 登入 Linux 主机!想要开放 root 以 telnet 登入 Linux 主机的话,可以这样做:

vi /etc/pam.d/login

在 auth required /lib/security/pam_securetty.so 这行前加 # ,即把这行注释掉就行

查询\安装SSH服务

登陆linux系统,打开终端命令。输入 rpm -qa |grep ssh 查找当前系统是否已经安装

 

2.如果没有安装SSH软件包,可以通过yum或rpm安装包进行安装(具体就不截图了)

启动SSH服务2

安装好了之后,就开启ssh服务。Ssh服务一般叫做 SSHD

命令行输入  service sshd start 可以启动  

或者使用 /etc/init.d/sshd start

配置\查看SSHD端口3

查看或编辑SSH服务配置文件,如 vi /etc/ssh/sshd.config   

 如果要修改端口,把 port 后面默认的22端口改成别的端口即可(注意前面的#号要去掉)

远程连接SSH4

如果需要远程连接SSH,需要把22端口在防火墙上开放。

.关闭防火墙,或者设置22端口例外

SSH远程登录失败,提示“Password authentication failed”

使用SecureCRT登陆,提示“Password authentication failed”

使用linux下ssh登陆,提示“Permission denied, please try again.”

网上收集的相关资料:

方法一:

1. vi服务器端的/etc/ssh/sshd_config

2. 把PasswordAuthentication设成yes

3. 重启ssh服务

方法二:

1.vi服务器端的/etc/ssh/sshd_config

2.找到#PermitRootLogin no将其修改为PermitRootLogin yes

方法三:

1.查看sshd是否正确在运行

   netstat -anp | grep sshd  

2.如果没有运行使用 service sshd restart 重启服务

方法四:

1.客户端使用 ssh -v root@192.168.0.120 查看登陆信息

2.提示“Permission denied, please try again.”

3.查看防火墙

  #/etc/init.d/iptables status

  如果22端口被限制则无法登陆。

  放开端口22

 #/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT

 #/etc/rc.d/init.d/iptables save

telnet :No route to host

[root@zshts011 backup]# telnet 192.168.31.42

Trying 192.168.31.42...

telnet: connect to address 192.168.31.42: No route to host

解决方法:

在目标机器上执行:iptables -F  //执行清除工作

 

通过ssh私钥公钥的形式

谁启动的jenkins就用哪个用户生成公钥私钥,如果在tomcat容器里的jenkins,则谁启动tomcat,谁生成公私钥对

可参考:

http://www.blogjava.net/qileilove/articles/409984.html

http://kurenai.elastos.org/2013/03/22/jenkins学习笔记(四)-masterslave的初步认识/

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

a)         生成密钥对:ssh-keygen –t rsa

b)         将id_rsa.pub加入到要访问机器的~/.ssh/authorized_keys

ssh-copy-id –i  ~/.ssh/id_rsa.pub  username@servername

之后就能使用ssh username@servername 无密码登陆

PS:/etc/ssh/sshd_config 中开启PubkeyAuthentication yes

若生成密钥时使用了密码,则在登陆时候仍需要密码,此时可以使用ssh-agent来帮忙。使用ssh-add将自己的密钥交给其管理,只要输入一次密码之后就能无密码登陆。

 

master所在服务器产生的私钥填写到jenkinsCredentials中 

master产生的公钥传给slave所在用户

 

配置slave节点是选择via ssh  ,选择对应的credentials

 

 

 

 


0 0
原创粉丝点击