
1 --- - hosts: web-server 3 remote_user: root tasks: - name: stop logstash shell: PID=` $PID && echo "rm ok";fi - name: rm old logstash shell: rm -rf /data1/elk/logstash* - name: cp new logstash copy: src=/home/dev/playbook/conf.zip dest=/data1/elk/conf.zip - name: unzip shell: /usr/bin// - name: cp new logstash copy: src=/home/dev/playbook/conf.zip dest=/data1/elk/conf.zip - name: unzip shell: /usr/bin//
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