Jenkins机器安装ansbile

1
2
[root@jenkins ~]# yum -y install epel-release ; yum -y install ansible
[root@jenkins ~]# ansible --version

image.png

配置ansible主机清单

1
2
3
4
5
6
7
8
[root@jenkins ~]# cat /etc/hosts
192.168.91.135 tomcat1
[root@jenkins ~]# cat /etc/ansible/hosts
[tomcat-server]
tomcat1
[root@jenkins ~]# ssh-keygen #一路回车
[root@jenkins ~]# ssh-copy-id tomcat1
[root@jenkins ~]# ansible tomc at1 -m ping

image.png

jenkins安装ansible插件

image.png
image.png

jenkins配置ansible工具

image.png

Jenkins使用ansible命令

image.png
image.png
image.png
image.png
image.png

jenkins使用ansible-playbook剧本

1
2
3
4
5
6
7
8
[root@jenkins ~]# cat /etc/ansible/test.yaml 
---
- hosts: tomcat-server
tasks:
- name: ip
shell: ip a
register: result # 显示结果为"result"
- debug: var=result # 将显示结果var赋值给result

image.png
image.png
image.png

jenkins+ansible构建maven项目

jenkins安装git

1
[root@jenkins ~]# yum -y install git

添加maven和jdk工具

image.png
image.png

jenkins配置gitee公钥

1
[root@jenkins ~]# cat /root/.ssh/id_rsa.pub

image.png

项目配置

image.png
image.png

git参数化构建

image.png

1
[root@jenkins ~]# cat /root/.ssh/id_rsa

image.png
gitee仓库地址:git@gitee.com:youngfit/easy-springmvc-maven.git
image.png

配置maven构建参数

image.png

配置ansible运行指令

image.png
image.png
image.png
image.png
–>保存

tomcat服务器配置

安装jdk和tomcat

配置环境变量

1
2
3
4
5
6
7
8
安装jdk8和tomcat
[root@tomcat local]# cat /etc/profile
TOMCAT_HOME=/data/application/tomcat
JAVA_HOME=/usr/local/java
MAVEN_HOME=/usr/local/java/maven
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

配置脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
[root@tomcat local]# cat /opt/script/app-jenkins.sh
#!/usr/bin/bash
#本脚本适用于jenkins持续集成,实现备份war包到代码更新上线!使用时请注意全局变量。
#================
#Defining variables
export JAVA_HOME=/usr/local/java
webapp_path="/usr/local/tomcat/webapps"
tomcat_run="/usr/local/tomcat/bin"
updata_path="/data/update/`date +%F-%T`"
backup_path="/data/backup/`date +%F-%T`"
tomcat_pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`
files_dir="easy-springmvc-maven"
files="easy-springmvc-maven.war"
job_path="/root/upload"

#Preparation environment
echo "Creating related directory"
mkdir -p $updata_path
mkdir -p $backup_path

echo "Move the uploaded war package to the update directory"
mv $job_path/$files $updata_path

echo "========================================================="
cd /opt
echo "Backing up java project"
if [ -f $webapp_path/$files ];then
tar czf $backup_path/`date +%F-%H`.tar.gz $webapp_path
if [ $? -ne 0 ];then
echo "打包失败,自动退出"
exit 1
else
echo "Checking if tomcat is started"
if [ -n "$tomcat_pid" ];then
kill -9 $tomcat_pid
if [ $? -ne 0 ];then
echo "tomcat关闭失败,将会自动退出"
exit 2
fi
fi
cd $webapp_path
rm -rf $files && rm -rf $files_dir
cp $updata_path/$files $webapp_path
cd /opt
$tomcat_run/startup.sh
sleep 5
echo "显示tomcat的pid"
echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
echo "tomcat startup"
echo "请手动查看tomcat日志。脚本将会自动退出"
fi
else
echo "Checking if tomcat is started"
if [ -n "$tomcat_pid" ];then
kill -9 $tomcat_pid
if [ $? -ne 0 ];then
echo "tomcat关闭失败,将会自动退出"
exit 2
fi
fi
cp $updata_path/$files $webapp_path
$tomcat_run/startup.sh
sleep 5
echo "显示tomcat的pid"
echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
echo "tomcat startup"
echo "请手动查看tomcat日志。脚本将会自动退出"
fi

构建测试

image.png
image.png

验证

image.png
image.png
来一次版本回退试试
image.png
image.png
没毛病