Jenkins 集群安装 以及遇到的问题

一、安装前的准备
1.总体说明
(1)在master节点19.91上安装jenkins,将jenkins.war放在tomcat里
(2)在slave节点19.92上不需要安装jenkins
(3)jdk maven 由于每个节点都需要,所以只在主节点安装 使用nfs挂载在其他所有的子节点,这里可能涉及到mvn的瓶颈问题

2.ip分配
192.168.19.91 jenkins_master jdk maven tomcat
192.168.19.92 jenkins_slave

3.目录结构
192.168.19.91

# pwd
/data
# ls		#tgz 放置安装过程中需要的软件压缩包   
jenkins_home  tgz  tomcat  tools		
# ls tools/		# tools放置公共使用的文件 此目录会被挂载出去
apache-maven-3.6.0  jdk1.8.0_151  mvn_repo

192.168.19.92

# pwd
/data
# ls		#tools目录为挂载19.91的目录
jenkins_home  tools

二、安装jenkins
1.安装tomcat: https://mp.csdn.net/mdeditor/86541306#
2.安装jenkins,将jenkins.war放到tomcat里即可. 修改配置 设置JENKINS_HOME

# cat bin/setenv.sh
#!/bin/bash
#common  # 使tomcat的运行模式为apr, 如果没有修改tomcat启动模式,注释掉下一行
JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

JENKINS_HOME="/data/jenkins_home"
JAVA_OPTS="$JAVA_OPTS -Xms1024m -Xmx4096m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.security.egd=file:/dev/./urandom"

export JENKINS_HOME

3.安装maven
(1)下载包:下载地址
(2)设置环境变量

# cat /etc/profile.d/mvn.sh 
#!/bin/bash
MVN_HOME=/data/tools/apache-maven-3.6.0
PATH=$PATH:$MVN_HOME/bin
export MVN_HOME PATH

# source /etc/profile.d/mvn.sh
# mvn -v			# 验证是否安装成功
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /data/tools/apache-maven-3.6.0
Java version: 1.8.0_151, vendor: Oracle Corporation, runtime: /data/tools/jdk1.8.0_151/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

注意 maven的配置文件 $MVN_HOME/conf/settings.xml 这个配置文件一般由开发人员提供  但是需要修改本地仓库路径(第53行,如果不修改 默认在在当前用户家目录的.m2目录下)

4.安装nfs

# yum install -y nfs-utils rpcbind
# cat /etc/exports
/data/tools 192.168.19.0/24(rw,insecure,sync,no_subtree_check,no_root_squash)
# systemctl restart nfs		#启动nfs
# systemctl enable nfs		#开机自启

5.设置master节点 免密登录到 slave节点

# ssh-keygen -t rsa
# ssh-copy-id [email protected]
# ssh [email protected]   #验证是否需要是输入密码

至此, 在master节点上已经安装完jenkins。下面需要在子节点操作

三、安装Jenkins 子节点
1.将公共应用jdk maven 从主节点挂载到子节点

# mkdir -p /data/tools
# yum install -y nfs-utils

# tail -1 /etc/fstab  # 在 最后添加一行 nfs.dy.com为192.168.19.91    在/etc/hosts 设置
nfs.dy.com:/data/tools	/data/tools	nfs	defaults	0 0
# mount -a  #加载配置  自动挂载
# df -h		#查看是否挂载成功
# ls /data/tools/
apache-maven-3.6.0  jdk1.8.0_151  mvn_rep

#配置jdk maven的环境变量 使java  mvn 命令生效可以将master节点的/etc/profile.d/java.sh /etc/profile.d/mvn.sh 拷贝过来 执行 source .... 使之生效

# mkdir /data/jenkins_home		#创建子节点的jenkins家目录
# wget http://192.168.19.91/jenkins/jnlpJars/agent.jar  #子节点启动jenkins时需要

2.在web界面上添加子节点
(1)登录jenkins: 192.168.19.91/jenkins
(2)依次点击 系统管理–>节点管理–>New Node 设置如下 主要命令如下,其中java路径做了软连接
ssh [email protected] /usr/local/bin/java -jar /data/jenkins_home/agent.jar
在这里插入图片描述
主要难点:就是agent.jar 不太好找 http://192.168.19.91/jenkins/jnlpJars/agent.jar

** 四、部署到tomcat时的配置**
在这里插入图片描述

五、在jenkins机器执行shell脚本启动jar时 启动后jar进程会自动关闭
错误提示信息:jenkins Process leaked file descriptors. See https://jenkins.io/redirect/troubleshooting/process-leaked-file-descriptors for more information
原因: Jenkins默认会在Build结束后Kill掉所有的衍生进程,用官方的话来说就是:
To reliably kill processes spawned by a job during a build, Jenkins contains a bit of native code to list up such processes and kill them.

解决方法1 在jenkins配置
Jenkins–>Manage Jenkins–>Configure System 在Global properties下,新增新的环境变量
Name=BUILD_ID
value=allow_to_run_as_daemon start_my_service

解决方法2 远程执行脚本 需要安装SSH插件
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sun_xuegang/article/details/87949869
今日推荐