我们都知道jenkins是一个java的项目,所以安装jenkins前要安装jdk。我这里选择是是openjdk11。
jdk安装:
sudo yum install java-11-openjdk
cd java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64/
#配置环境变量
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64"
#测试
java --version
jenkins安装:
- 去清华大学源选择你要安装jenkins的版本:Index of /jenkins/redhat/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
- 启动
yum install -y jenkins-2.430-1.1.noarch.rpm #设置开机自启 systemctl enable jenkins --now #查看默认登录密码 cat /var/lib/jenkins/secrets/initialAdminPassword
-
关闭防火墙访问客户端
systemctl stop firewalld
4.配置jenkins用户(不配置后期无法执行脚本)
usermod -s /bin/sh jenkins && su - jenkins
#配置权限
visudo
%jenkins ALL=(ALL) NOPASSWD:ALL
#这里设置的是脚本路径用jenkins用户执行
sudo chown jenkins:jenkins /root/script/docker_run.sh
#这个是后期要执行脚本的路径,根据实际情况修改
sudo chmod +x /root/script/docker_run.sh
passwd jenkins
su -jenkins
#生成密钥文件
-sh-4.2$ ssh-keygen
#将公钥传给Nginx
-sh-4.2$ ssh-copy-id root@server_ip
#切换到脚本路径执行脚本(主要是首次连接需要确认yes,否则Jenkins直接构建会失败)
-sh-4.2$ cd script/
#测试
-sh-4.2$ ./jenkins-nginx.sh
5:docker_run.sh脚本
vim /root/script/docker_run.sh
#!/bin/bash
#脚本用途:用于将jenkins的项目发送到远程主机
#本地jenlins的工作目录
WORKE_DIR="/var/lib/jenkins/workspace"
#远程主机ip
REMOTE_IP="10.10.7.218"
#本地要发送的项目名称,不同的项目对应不同的名称
PROJECT_NAME="java"
#自定义的项目名称,可修改
TAR_NAME="springboot"
#项目发布时间
TIME=`date +%F-%H-%M-%S`
cd $WORKE_DIR || { echo "$WORKE_DIR 工作目录不存在"; exit 1;}
echo "===执行打包命令==="
tar -zcf $TAR_NAME-$TIME.tar $PROJECT_NAME >/dev/null
echo "===远程发送==="
scp $TAR_NAME-$TIME.tar root@$REMOTE_IP:/root
#本地备份,这里也能放到远程服务器
mv $TAR_NAME-$TIME.tar /root/script/java/
if [ $? -ne 0 ]; then
echo "远程发送失败"
exit 1
fi
echo "===ssh连接执行命令==="
#解压并清理压缩包
ssh root@$REMOTE_IP "cd /root && tar -xf $TAR_NAME-$TIME.tar && rm -rf $TAR_NAME-$TIME.tar"
echo "===执行远程脚本==="
#执行远程服务器的脚本
ssh root@$REMOTE_IP "bash /root/script/docker_run.sh" &>/dev/null
ip+8080
出现这个页面表示安装成功