老师好,想请教下怎么通过自动化运维工具实现微服务架构的自动部署,测试环境是用jenkins+git+maven集成插件并配置发布脚本,生产环境是手动打成jar包,ftp上传服务器。有没有什么好办法实现自动发布到生产环境
remote_user: root
gather_facts: no
vars:
bakwarpath: /opt/tomcat/webapps
tasks:
file:
path: /home/ceshi/bak
state: directory
owner: ceshi
group: ceshi
mode: 0755
command: date +"%Y%m%d%H%M%S"
register: baktime
shell: ls {{ bakwarpath }}/"{{ updateproject }}".war
register: bakwar
shell: cp {{ bakwar.stdout }} /home/ceshi/bak/{{ updateproject }}.war{{ baktime.stdout }}
shell: "find /home/ceshi/bak/ -maxdepth 1 -mtime +7|xargs rm -rf"
file:
path: /home/ceshi/softtmp
state: directory
owner: ceshi
group: ceshi
mode: 0755
shell: ls {{ updatewarpath }}/*.war
connection: local
register: updatewar
ignore_errors: yes
copy:
src={{ updatewar.stdout }}
dest=/home/ceshi/softtmp/
force=yes
owner=ceshi
group=ceshi
mode=755
shell: "ps -ef|grep java|grep -v grep|awk '\'{print \$2}\''|xargs kill -9"
ignore_errors: yes
shell: "mv /home/ceshi/softtmp/*.war {{ bakwar.stdout }}"
ignore_errors: yes
file:
path: "{{ bakwarpath }}/{{ updateproject }}"
state: absent
ignore_errors: yes
file:
path: "{{ bakwarpath }}/{{ updateproject }}"
state: directory
owner: ceshi
group: ceshi
mode: 0775
unarchive: src="{{ bakwar.stdout }}" dest="{{ bakwarpath }}/{{ updateproject }}" owner=ceshi group=ceshi mode=775 copy=no
ignore_errors: yes
file:
path: "/opt/tomcat/work/Catalina/"
state: absent
ignore_errors: yes
shell: "source /etc/profile;java -version;cd /opt/tomcat/bin;nohup ./startup.sh &"
become: yes
become_user: ceshi
become_method: su
file:
path: /home/ceshi/softtmp
state: absent
收起