使用docker的jenkins自动部署java
启动jenkins服务
首先拉镜像
docker pull
启动
# 创建挂载文件夹
mkdir -p /usr/local/docker-volume/jenkins
#运行docker实例
docker run \
--name my-jenkins
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v /usr/local/docker-volume/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
配置maven java
1、部署目标服务器上配置maven(也可以选择配置到jenkins服务器上,此处我直接配置到部署目标服务器上的)
2、部署目标服务器上配置java环境(自行配置)
配置ssh
http://localhost:8080
进入界面
初始密码为:
cat /var/jenkins_home/secrets/initialAdminPassword
ssh执行远程命令配置
在jenkins的 系统管理-》插件管理-》搜索:Publish Over SSH
安装Publish Over SSH
然后进入 jenkins的 系统管理-》系统配置-》Publish over SSH配置
Publish Over SSH 配置过程
#生成密钥对:
#其中 1、id_rsa.pub追加到需要被访问的目标服务器
# ~/.ssh/authorized_keys下面
# 2、id_rsa拷贝到本地或者需要访问目标服务器的服务器
ssh-keygen
ls ~/.ssh/
#显示: authorized_keys id_rsa id_rsa.pub
#其中 id_rsa为私钥 id_rsa.pub为公钥
#公钥追加到authorized_keys
#如果再本地生成的密钥对 那么可以使用ssh-copy-id ${需要操作的服务器ip} 上传到操作服务器上
cat id_rsa.pub >> authorized_keys
#jenkins Key这个地方就是id_rsa的值 或者Path to Key这个位置
# 配置id_rsa(上面生成的拷贝到jenkins服务器上)
cat id_rsa
配置使用 ssh root@ip "ls /home"测试一下
,如果是阿里云需要手动允许操作才可以继续
Passphrase:如果私钥设置了密码就是私钥的密码,私钥没设置密码可以不填
Path to key:私钥的位置
Key:私钥的内容。如果此处填入了值,则以此处的值为准,会忽略掉Path to key的配置
SSH Servers:服务器的配置
Name:名称(自定义)
Hostname:服务器地址
Username:用户名
Remote Directory:默认远程服务器的地址
开始配置
选择新建一个任务:自由风格即可
配置git
配置shell
#!/bin/bash -l
BUILD_ID=DONTKILLME
ssh root@172.16.159.129 "cd /usr/local/docker-volume/jenkins/workspace/kasi && /usr/local/maven/apache-maven-3.6.1/bin/mvn clean package -Dmaven.test.skip=true -X -U"
ssh root@172.16.159.129 "cp /usr/local/docker-volume/jenkins/workspace/kasi/target/kasi*.jar /home/kasi_edu/ && cd /home/kasi_edu && sh /home/kasi_edu/restart.sh"
然后就可以构建了