基于Ansible和Devops的一键测试环境部署实践( 四 )
部署完成后修改启动参数 , 并启动服务 , 并检查服务的启动状态 。
- name: copy start.sh file template: src: start.sh dest: ''{{ install_dir }}/start.sh'' mode: 0755 - name: change vm options when: app_server_name | lower == 'jboss' lineinfile: dest: ''{{ install_dir }}/startServer.sh'' regexp: 'Display our environment' line: 'JAVA_OPTS=''$JAVA_OPTS -Xms2G -Xmx2G''' - name: start Server shell:bash start.sh args: chdir: ''{{ install_dir }}'' - name: wait server start when: have_app_server_port wait_for: timeout=60 port=''{{ app_server_port }}'' state=started以上六个部署过程实现了不同产品测试环境的快速部署 。
部署脚本编写完成了 , 该如何有效的去执行部署脚本 。 每个产品部署时的数据库信息、应用服务器相关参数有十几二十个 , 每次去查看脚本定义来确定这些参数对每个测试人员是不友好的 。 结合普元Devops产品的发布流水线功能 , 就可快速便捷的实现测试环境部署 。
首先通过在DevOps中定义发布流水线 , 将产品部署流程分为代码仓库拉取脚本、部署产品和发送邮件三部分 。
本文插图
对于部署过程中的参数 , 通过发布流水线的参数化功能实现 。 将需要修改的参数定义为入参 , 这样在执行发布的时候可根据实际需要修改参数值 。
本文插图
对于具有明确有限个值的参数 , 可定义为枚举类型的参数 , 并可以映射为易读易理解的名称 , devops中对枚举类型的参数提供下拉选择框 , 方便部署过程中进行参数修改 。 可通过multiSelect属性定义实现单选和多选 。
本文插图
本文插图
所有参数化完成后 , 利用devops中shell脚本执行功能调用ansible-playbook命令并将定义的参数通过extra-vars选项传递给ansible完成测试环境的部署 。
本文插图
【基于Ansible和Devops的一键测试环境部署实践】
定义的发布流水线既可以通过定时构建触发 , 定时构建触发时使用参数定义的默认值;也可以手动发布 , 手动发布时可以动态修改部署参数 。 这样就可以根据测试需求快速实现不同组合环境的部署 。
本文插图
对于不同的测试环境组合 , 也可以定义多个发布任务 。 根据实际的环境规划 , 对不同的任务通过标签进行分类管理 , 就可以快速定位部署任务 , 也可以有效实现环境部署任务的管理 。
本文插图
Ansible结合Devops , 既实现了多产品多组合环境的快速部署 , 也完成了对环境部署任务的高效管理 , 为产品测试过程中环境提供保障 。
[1] https://baike.baidu.com/item/ansible/20194655?fr=aladdin
[2] https://www.edureka.co/blog/chef-vs-puppet-vs-ansible-vs-saltstack/
本文插图
本文作者:dozeno
关于作者:普元高级测试开发工程师 , 主要参与EOS、ESB等产品的自动化测试和持续部署工作 , 热衷于自动化测试、持续部署和Devops等相关技术 。
推荐阅读
- 指数债券|美债收益率曲线的陡平之辨:基于供需视角的分析
- 怅然|基于Ansible和Devops的一键测试环境部署实践
- 三好先森|基于JeecgBoot快速开发简历库系统,开源项目,实操分享
- Find|基于安卓11,OPPO将开启新版本ColorOS公测招募
- 京东数科服贸会首提基于城市操作系统的“一核两翼”
- 中新经纬|京东数科首提基于城市操作系统的“一核两翼”
- 超跑密探|阿斯顿马丁基于one-77底盘打造,848匹!,全球仅1台
- 手机圈小胖|Plus获得基于安卓7.0的Flyme8稳定版推送,魅族15
- 津爱改装车|基于统一正则散列算法的多模数据分析
- 小熊回收站|txtai:基于 Transformer 的人工智能搜索引擎