[系统开发] 基于Ansible的产品上线系统

时间:2022-03-23 01:20:53

前言:

应部门急需,开发了一套基于Ansible Playbook的产品上线系统。由于时间很紧,UI直接套用了之前开发的一套perl cgi模板,后续计划用 django 重新编写。

个人感觉该系统的功能也可以用jenkins实现,只是自己开发的系统可以针对特殊需求进行定制。

1. 系统概述

本系统通过Web管理Ansible Playbook版本上线脚本,支持参数传递、动态显示、并发执行、日志管理。

...

4. 登录系统

用浏览器打开服务器IP的80端口,并用已创建的用户登录:

[系统开发] 基于Ansible的产品上线系统

5.
节点管理

5.1
配置节点

ssh登录系统,修改/etc/ansible/hosts文件

5.2
查看节点列表

节点管理—节点列表

[系统开发] 基于Ansible的产品上线系统

5.3
节点维护

节点管理—节点维护

5.3.1
准备ansible
playbook

编写ansible
playbook或者playbook
role,放入一个目录中,重命名该目录,然后放到/var/www/ansible/playbooks/目录下;

1)对于rsync脚本

请同时定义srcHosts参数和destHosts参数;

#
/var/www/ansible/playbooks/rsync/site.yaml

2)对于其它脚本

只需要定义destHosts参数;

#
/var/www/ansible/playbooks/install/site.yaml

---

5.3.2
通过UI选择命令

[系统开发] 基于Ansible的产品上线系统

命令列表:

  • 页面显示的每个命令对应/var/www/ansible/playbooks/下的同名子目录下的site.yaml文件,

  • site.yaml可以是独立的ansible
    playbook,也可以是playbook
    role目录的入口文件。

5.3.3
目标主机和源主机

[系统开发] 基于Ansible的产品上线系统

对于rsync命令,系统要求选择目标主机和源主机;

对于其它命令,只需要选择目标主机;

按键盘CTRL键选择主机或取消选择,支持多选;

5.3.4
执行命令

点击执行,UI会在后台执行该命令、写入log文件,前台则动态显示执行进度;

[系统开发] 基于Ansible的产品上线系统

[系统开发] 基于Ansible的产品上线系统

5.3.5
并发执行命令

每次执行任务的时候,都可以按“返回”键返回,然后执行新的命令。多个命令可以在后台并发执行,用户可以通过日志菜单随时查看日志。

6.
日志管理

6.1
管理日志

日志—管理历史

[系统开发] 基于Ansible的产品上线系统

6.2
Ansible日志

日志—Ansible日志

该页面可以筛选和显示每次执行ansible
playbook的日志:

[系统开发] 基于Ansible的产品上线系统

7.
系统配置

修改下述文件后reload
httpd:

#vim
/var/www/ansible/modules/pmConfig.pm

our
$theScriptDir = '/var/www/ansible/playbooks';

our
$theTitle = 'Ansible 版本上线系统';

our
$theUsersFile = '/var/www/ansible/users/users.txt';

our
$theAnsibleHostsFile = '/etc/ansible/hosts';

our
$theLogDir = '/var/www/ansible/log';

our
$theLogFile = $theLogDir.'/ansible-ui.log';

our
$theVersion = '1.0';

[系统开发] 基于Ansible的产品上线系统的更多相关文章

  1. windows下使用pycharm开发基于ansible api的python程序

    Window下python安装ansible,基于ansible api开发python程序 在windows下使用pycharm开发基于ansible api的python程序时,发现ansible ...

  2. 【系统分析】《系统分析与设计方法》 Jeffrey L.Whitten 第1部分 系统开发环境 第3章 信息系统开发

    1.解释为什么对企业来说,拥有一个标准的系统开发过程很重要. 开发过程的成熟,使项目时间和费用减少,生产率和质量提高 2.如何关联系统生命周期和系统开发方法学? 系统生命周期包含系统开发阶段,其中使用 ...

  3. 基于Jenkins自动构建系统开发

    1  绪论 1.1 课题的研究背景 随着IT行业的不断发展,软件开发的复杂度也随着不断提高.与此同时,软件的开发团队也越来越庞大,而如何更好地协同整个团队进行高效准确的工作,从而确保软件开发的质量已经 ...

  4. RDIFramework.NET -.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(WebForm版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(WebForm版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之 ...

  5. RDIFramework.NET-.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(MVC版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(MVC版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之产品管理 ...

  6. 嵌入式应用开发第四阶段-基于rk3399的视频监控系统

    一.需求分析 伴随着嵌入式技术.图像处理技术和无线网络传输技术的发展,传统模拟视频监控系统和基于PC的远程视频监控系统由于自身的不足,已经无法满足现代社会应用中不断涌现出来的新需求,于是基于嵌入式技术 ...

  7. SSM开发基于Java EE在线图书销售系统

           SSM(Spring+Spring MVC+MyBatis)开发基于Java EE在线图书销售系统  网站成功建立和运行很大部分取决于网站开发前的规划,因此为了在网站建立过程中避免一些不 ...

  8. 基于C/S架构的3D对战网络游戏C++框架_05搭建系统开发环境与Boost智能指针、内存池初步了解

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  9. 基于ssh框架的在线考试系统开发的质量属性

    我做的系统是基于ssh框架的在线考试系统.在线考试系统有以下几点特性:(1)系统响应时间需要非常快,可以迅速的出题,答题.(2)系统的负载量也需要非常大,可以支持多人在线考试(3)还有系统的安全性也需 ...

随机推荐

  1. UCenter整合登陆时出现’Authorization has expired’错误(2014-03-13记)

    原因之可能是两台机子的时间不一致导致.

  2. 深刻理解Python中的元类(metaclass)

    译注:这是一篇在Stack overflow上很热的帖子.提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自省有关,但仍然觉得 ...

  3. windows常用net use命令

    net share :查看本地主机的共资源 nbtstat -A IP :得到远程主机的用户列表 net user c:/del 删除映射的C盘,其它盘类推 net user * /del 删除全部映 ...

  4. 在VC/MFC中嵌入Google地图——图文并茂

    近期须要实验室须要将在无人机地面站中嵌入地图,在网上找了非常多资料,最终有些眉目了, 首先.做这个须要用到的知识有.MFC控件.MFC类库.JavaScript脚本语言.Google API.Goog ...

  5. Jenkins使用教程

    1 软件安装  1.1 运行环境   1.1.1 Maven的安装   1.1.2 Git的安装   1.1.3 Tomcat的安装  1.2 安装Jenkins  1.2.1 msi和war包安装2 ...

  6. linux下objdump应用

    <a href="http://www.maomao365.com/?p=952" > linux命令objdump的用法  http://www.maomao365. ...

  7. 有没有人曾告诉你,你的SQL又报错了?&lbrack;开发篇&rsqb;

    引语:线上运行的真实环境总是变幻莫测,明明你在本地测试的时候各种情况都是OK得不要不要的,也许你还在为自己某个地方炫酷的效果以及神奇的设计感到激动不已!但是,到线上以后,他就会偶尔跟抽风一样的跟你sa ...

  8. &lbrack;luogu&rsqb;P1852跳跳棋

    题目重点是每次不能跳过两个棋子 即对于每一个棋子的状态(a,b,c) (a<b<c) 最多有两种移动的方式 1.中间往两边跳 (a,b,c)-->(2b-a,a,c)或(a,c,2b ...

  9. tf 模型保存

    tf用 tf.train.Saver类来实现神经网络模型的保存和读取.无论保存还是读取,都首先要创建saver对象. 用saver对象的save方法保存模型 保存的是所有变量 save( sess, ...

  10. 20155225 实验一《Java开发环境的熟悉》实验报告

    20155225 实验一<Java开发环境的熟悉>实验报告 一.命令行下Java程序的开发 按照老师提供的步骤,运行程序如下: 二.IDEA下Java程序开发.调试 设置条件断点如下: 三 ...