Ansible是作为自动化运维的底层实现,功能很强大,但需要通过命令或playbook的yaml文件来实现,相对对运维人员而言,学习成本过大。所以这里要考虑到通过Flask Web框架来实现其二次封装,提供HTTP接口来实现远程调用。但我们在请求Ansbile API的时候,ansible默认本身是阻塞的,用户那边会一直处于等待状态,这样大家的用户体验也不好,所以这里会用rq来实现其非阻塞功能,即实现任务的异步化。


使用的开源软件

Ansible

Flask

redis

redis-rq


代码地址