标签:shell java projectDir -- server ansible 构建 exclude springApplicationName
背景
公司saas项目采用spring cloud,用Jenkins构建,随着微服务越来越多,每增加一个机器/环境都需要修改Jenkins的配置,
那时刚增加了uat环境,开发和测试环境机器由于性能不同需要对调,这时需要修改 Jenkins的项目数=微服务数*3
于是就在github和码云找Jenkins替代方案,类似的软件有很多,流程都是新建项目,单独修改每个项目的构建脚本(分为 maven打包,执行备份,上传jar包,执行重启)
对于多微服务项目来说,修改过程繁琐,于是就想到通过写代码来生成这些脚本。于是基于ansible的java构建工具 就诞生了。
项目截图
技术依赖项
centos (运行环境)
gitlab(微服务项目)
nacos (微服务配置)
redis(缓存,session)
minio(脚本文件存储)
jdk1.8
ansible
nginx 在springcloud gateway读取配置
ansible playbook 模板如下
--- #fileInfo${fileInfo} - hosts: 127.0.0.1 remote_user: root tasks: - shell: rm -rf ${cloneDir} - shell: mkdir -p ${cloneDir} - shell: chmod -R 777 ${cloneDir} - command: chdir: ${cloneDir} cmd: git clone -b '${gitBranch}' ${gitCloneUrl} - shell: chmod -R 777 ${cloneDir} - command: chdir: ${pomDir} cmd: mvn clean package -e -U -Dmaven.test.skip=true - command: chdir: ${servicePomDir}target/ cmd: ls - hosts: ${server.uuid} remote_user: ${server.username} tasks: - shell: mkdir -p ${server.projectDir}${springApplicationName}/ - shell: date +%Y_%m_%d_%H_%M_%S register: backup_date - name: "print_date" debug: msg: "{{ backup_date['stdout'] }}" - shell: rm -rf ${server.projectDir}bak_${springApplicationName}/{{ backup_date['stdout'] }}/ - shell: mkdir -p ${server.projectDir}bak_${springApplicationName}/{{ backup_date['stdout'] }}/ - shell: cp -r ${server.projectDir}${springApplicationName} ${server.projectDir}bak_${springApplicationName}/{{ backup_date['stdout'] }}/ - name: synchronize jar synchronize: src: ${servicePomDir}target/ dest: ${server.projectDir}${springApplicationName}/ mode: push delete: yes compress: yes rsync_opts: - "--exclude=classes" - "--exclude=generated-sources" - "--exclude=maven-archiver" - "--exclude=maven-status" - "--exclude=*.original" - "--exclude=.git" - "--exclude=*.pid" - "--exclude=*.bak" - "--exclude=*.log" - "--exclude=*.sh" - "--cvs-exclude" - "--include=*.jar" # - command: # chdir: ${server.projectDir}${springApplicationName}/ # cmd: chown -R ${server.username}:${server.username} ${server.projectDir}${springApplicationName}/ - command: chdir: ${server.projectDir}${springApplicationName}/ cmd: ./app.sh restart - hosts: 127.0.0.1 remote_user: root tasks: - shell: rm -rf ${cloneDir}
标签:shell,java,projectDir,--,server,ansible,构建,exclude,springApplicationName 来源: https://www.cnblogs.com/LDDXFS/p/16385581.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。