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

前言:

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

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

1. 系统概述

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

...

4. 登录系统

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



5. 节点管理

5.1 配置节点

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

5.2 查看节点列表

节点管理—节点列表

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选择命令



命令列表:

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

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

5.3.3 目标主机和源主机



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

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

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

5.3.4 执行命令

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



5.3.5 并发执行命令

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

6. 日志管理

6.1 管理日志

日志—管理历史

6.2 Ansible日志

日志—Ansible日志

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

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';

 

posted @ 2016-05-03 18:12  hahp  阅读(1505)  评论(1编辑  收藏  举报