1 --- 2 - hosts: web-server
3 remote_user: root 4 tasks: 5 - name: stop logstash 6 shell: PID=`ps -ef | grep logstash | grep -v grep | awk '{print $2}'`; if [ $PID ];then kill -9 $PID && echo "rm ok";fi 7 - name: rm old logstash 8 shell: rm -rf /data1/elk/logstash* 9 - name: cp new logstash 10 copy: src=/home/dev/playbook/conf.zip dest=/data1/elk/conf.zip 11 - name: unzip 12 shell: /usr/bin/unzip -o /data1/elk/conf.zip -d /data1/elk/logstash-6.5.1/ 13 - name: cp new logstash 14 copy: src=/home/dev/playbook/conf.zip dest=/data1/elk/conf.zip 15 - name: unzip 16 shell: /usr/bin/unzip -o /data1/elk/conf.zip -d /data1/elk/logstash-6.5.1/
![](https://img2018.cnblogs.com/blog/9/201812/9-20181214173852782-1654526997.png)
1、配置yml文件
2、其中roles内目录名一定要与上面SC_Fabu.yml里写的完全一致,且下面必须要有tasks目录,tasks内一定要有main.yml
3、配置main.yml
- name: stop nginx
shell: systemctl stop nginx
- name: stop tomcat
shell: systemctl stop {{tomcat}}
- name: copy old file
shell: cp -r /data1/application/{{pro_name}}/{{tomcat}}/webapps /data1/bak/{{pro_name}}/webappsBak-$(date +%F-%H-%M-%S)
- name: rm old file
file: path=/data1/application/{{pro_name}}/{{tomcat}}/webapps/ROOT* state=absent
- name: copy new file
copy: src=/data1/jenkins-data/userContent/SC/{{pro_name}}/ROOT.war dest=/data1/application/{{pro_name}}/{{tomcat}}/webapps/ROOT.war
- name: start tomcat
shell: systemctl start {{tomcat}}
- name: sleep
shell: sleep 30
- name: chmod
file: path=/data1/application/{{pro_name}}/{{tomcat}}/webapps/ mode=755 recurse=yes
- name: test get
get_url: url=http://{{host}}:{{http_port}}/back/heartBeat dest=/tmp
- name: start nginx
shell: systemctl start nginx
4、配置jenkins
5、发布测试
查看playbook执行过程 可以使用-v
ansible-playbook -v ZSC_Fabu.yml --extra-vars "host=10.253.1.1 tomcat=tomcat-3 pro_name=server http_port=8083"
yaml 语法检测
ansible-playbook ZSC_Fabu.yml --syntax --check