1 docker 安装jenkins
docker pull jenkins/jenkins:lts
启动容器
docker run -d --privileged -p 9000:8080 -p 9001:50000 --name myjenkin jenkins/jenkins:lts
查看Jenkins 日志输入密码
安装完成创建用户
注:jenkins最新版本jdk版本要求11以上,客户端一定要安装jdk11 及以上版本
新建一台agent(192.168.58.131) 服务器,用来进行代码的clone 编译,需要安装的软件 jdk11 maven git软件
jdk 安装:
yum install yum install java-11-openjdk.x86_64
maven3.6 安装
下载地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-
3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -zxf apache-maven-3.6.3-bin.tar.gz.gz
mv apache-maven-3.6.3 maven
git2.28
官网下载速度非常慢。国内加速地址大部分为windows版本。登录
https://github.com/git/git/releases查看git的最新版。不要下载带有-rc的,因为它代表了
一个候选发布版本。
https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz
1
2
统一配置
配置软连接
java方式连接agent
下载jar包
tar -zxvf git-2.28.0.tar.gz
cd git-2.28.0
配置git安装路径
./configure --prefix=/opt/git/
编译并且安装
make && make install
统一配置
vi /etc/profile
export PATH
export MAVEN_HOME=/opt/maven
export PATH=$MAVEN_HOME/bin:$PATH
export PATH=$PATH:/opt/git/bin
source /etc/profile
配置软连接
master节点ssh连接agent节点时需要/usr/bin/有java命令。配置java的软连接、同理配置
maven、git的软连接。如果软件是yum安装的,则需要检查/usr/bin中是否有相关命令。如果没有。
也需要做软连接。
ln -s /opt/jdk1.8.0_241/bin/java /usr/bin/
ln -s /opt/mvn/bin/mvn /usr/bin/
ln -s /opt/git/bin/git /usr/bin
2 jenkins 配置
SSH方式连接agent
免密配置
master节点要免密登录agent节点
生成秘钥
ssh-keygen -t rsa
复制公钥
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.58.131
免密登录测试
ssh 192.168.58.131
配置凭据
jenkins工作台->系统管理->凭据管理(manager credentials)
类型:SSH Username with private key
修改agent节点
jenkins工作台->系统管理->节点管理->选择agent节点->配置从节点->启动方式->Launch agents
via SSH
自由风格项目测试
错误一
配置好master和agent节点,创建一个自由风格项目,测试agent节点各种环境是否正常。
注意事项:必须要增加#!/bin/bash。如果不增加,jenkins会出现Build step 'Execute
shell' marked build as failure错误。脚本内容如下:
#!/bin/bash
java -version
mvn -v
git version
docker version
错误二
点击"立即构建",发现java git docker命名都正常执行,而mvn命名未正常执行。
分析:
是因为jenkins远程调用agent节点时不会执行 source /etc/profile文件。那我们文件的配置不
会生效。所以需要在我们的脚本中加入相关命令即可。脚本内容如下:
#!/bin/bash
source /etc/profile
java -version
mvn -v
git version
docker -v