当先锋百科网

首页 1 2 3 4 5 6 7

 

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 [email protected]

注意:

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

.authorized_keys文件权限需要设置600

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

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

添加凭据

Username 栏填写之前从节点上创建的jenkins用户

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

其它的不用填写

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

6. 部署jenkins用户公钥到Gitlab 

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

 

7. 配置Master节点

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

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

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

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。

 

填完之后,点击【保存】 

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

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

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

创建Jenkins项目

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

项目配置 

 

从节点执行后结果如下

[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