持续集成工具Jenkins学习3 MVN+Ansible集成
一、 环境准备
- Jenkins
- Java SpringBoog工程
- Jenkins服务器上安装Ansible
- 有一台待部署目标服务器
二、操作
Jenkins与ansible的集成通常有两种方式,一种使用jenkins-ansible插件,另一种使用shell调用。
本文使用shell方式。
1. 创建spring boot 项目
过程略。
2. 在Jenkins新建 TestingProject流水线工程
3. 设置jenkins服务器免密登陆 目标机器
4. 在/home下新建restart.sh
ps -ef|grep myapp|grep -v grep|cut -c 9-15|xargs kill -9
nohup /usr/bin/java -jar -Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m /home/TestProject/myapp.jar >> /dev/null 2>&1 &
5. 在spring boot项目下新建 playbook.yml
---
- hosts: testing
tasks:
- name: restart whr info web v2
shell: bash /home/restart.sh
6. 在spring boot项目下新建hosts文件
[testing]
192.168.1.2
7. 修改Jenkinsfile文件
pipeline{
agent any
tools {
maven 'maven'
}
stages {
stage('Build') {
steps {
echo 'Building...'
sh "mvn clean package -Dmaven.test.skip=true"
sh "printenv"
sh "scp /var/lib/jenkins/workspace/TestProject/myapp/target/myapp.jar root@192.168.1.2:/home/myapp.jar"
}
}
stage('Deploy') {
steps {
sh "ansible-playbook ${env.WORKSPACE}/playbook.yml -i ${env.WORKSPACE}/hosts"
}
}
}
}