互联网服务自动化运维

自动化运维工具实现?

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

参与8

2同行回答

顾黄亮顾黄亮  技术总监 , 畅销书作者
第一个问题,jar包有了,如何自动发布到生产环境,这个特别简单,shell语言就能实现,下面几个步骤,提供参考。hosts: ANSIremote_user: rootgather_facts: novars:bakwarpath: /opt/tomcat/webappstasks:name: "创建备份目录!"file:path: /home/ceshi/bakstate: directoryowner: c...显示全部

第一个问题,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
浏览1024
匿名用户匿名用户
同问,有没有生产测试尽可能协同一体的方式显示全部

同问,有没有生产测试尽可能协同一体的方式

收起
银行 · 2022-01-20
浏览936
  • 生产测试用同一个制品库,对制品需要打标签,比如sit、pre、uat、prd
    2022-01-20

提问者

康财福_twt
Linux运维工程师北京软通动力集团有限公司

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2022-01-19
  • 关注会员:3 人
  • 问题浏览:1747
  • 最近回答:2022-01-20
  • X社区推广