互联网服务自动化运维

自动化运维工具实现?

老师好,想请教下怎么通过自动化运维工具实现微服务架构的自动部署,测试环境是用jenkins+git+maven集成插件并配置发布脚本,生产环境是手动打成jar包,ftp上传服务器。有没有什么好办法实现自动发布到生产环境...显示全部

老师好,想请教下怎么通过自动化运维工具实现微服务架构的自动部署,测试环境是用jenkins+git+maven集成插件并配置发布脚本,生产环境是手动打成jar包,ftp上传服务器。有没有什么好办法实现自动发布到生产环境

收起
参与8

查看其它 1 个回答顾黄亮的回答

顾黄亮顾黄亮课题专家组技术总监畅销书作者

第一个问题,jar包有了,如何自动发布到生产环境,这个特别简单,shell语言就能实现,下面几个步骤,提供参考。

  • hosts: ANSI

remote_user: root

gather_facts: no

vars:

bakwarpath: /opt/tomcat/webapps

tasks:

  • name: "创建备份目录!"

file:

path: /home/ceshi/bak

state: directory

owner: ceshi

group: ceshi

mode: 0755

  • name: "获取备份包时间!"

command: date +"%Y%m%d%H%M%S"

register: baktime

  • name: "获取备份包路径!"

shell: ls {{ bakwarpath }}/"{{ updateproject }}".war

register: bakwar

  • name: "将现网使用包备份至备份路径!"

shell: cp {{ bakwar.stdout }} /home/ceshi/bak/{{ updateproject }}.war{{ baktime.stdout }}

  • name: "清理7天之前的备份包!"

shell: "find /home/ceshi/bak/ -maxdepth 1 -mtime +7|xargs rm -rf"

  • name: "创建更新包临时目录!"

file:

path: /home/ceshi/softtmp

state: directory

owner: ceshi

group: ceshi

mode: 0755

  • name: "获取上传包路径!"

shell: ls {{ updatewarpath }}/*.war

connection: local

register: updatewar

ignore_errors: yes

  • name: "将全量更新包上传至服务器tmp目录!"

copy:

src={{ updatewar.stdout }}

dest=/home/ceshi/softtmp/

force=yes

owner=ceshi

group=ceshi

mode=755

  • name: "stop tomcat"

shell: "ps -ef|grep java|grep -v grep|awk '\'{print \$2}\''|xargs kill -9"

ignore_errors: yes

  • name: "update war"

shell: "mv /home/ceshi/softtmp/*.war {{ bakwar.stdout }}"

ignore_errors: yes

  • name: "清空发布包目录!"

file:

path: "{{ bakwarpath }}/{{ updateproject }}"

state: absent

ignore_errors: yes

  • name: "创建发布包目录!"

file:

path: "{{ bakwarpath }}/{{ updateproject }}"

state: directory

owner: ceshi

group: ceshi

mode: 0775

  • name: "解压war包"

unarchive: src="{{ bakwar.stdout }}" dest="{{ bakwarpath }}/{{ updateproject }}" owner=ceshi group=ceshi mode=775 copy=no

ignore_errors: yes

  • name: "清空缓存目录!"

file:

path: "/opt/tomcat/work/Catalina/"

state: absent

ignore_errors: yes

  • name: "start tomcat"

shell: "source /etc/profile;java -version;cd /opt/tomcat/bin;nohup ./startup.sh &"

become: yes

become_user: ceshi

become_method: su

  • name: "删除临时更新包目录!"

file:

path: /home/ceshi/softtmp

state: absent

银行 · 2022-01-20
浏览1043

回答者

顾黄亮
技术总监畅销书作者
擅长领域: 云计算数据库系统运维

顾黄亮 最近回答过的问题

回答状态

  • 发布时间:2022-01-20
  • 关注会员:3 人
  • 回答浏览:1043
  • X社区推广