跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • ansible playbook 通过封装 api 后执行日志问题请教
未分類
31 5 月 2020

ansible playbook 通过封装 api 后执行日志问题请教

ansible playbook 通过封装 api 后执行日志问题请教

資深大佬 : fanne 0

目前封装了 ansible playbook api,执行 playbook 后返回结果类似如下

  {     "ok": {         "include_tasks": "OK"     },     "failed": {         "获取 XX 信息[192.168.21.1]": "Unable to gather facts for non-existing VM "     },     "unreachable": {},     "skipped": {},     "status": {},     "programbug": {},     "virtual_ip": "192.168.21.1",     "task_id": "add_virtual-1590664169876" } 

现在的需求是,根据执行每个 playbook,写入一个 log 文件,到时再通过 websocket 进行获取这个日志文件,实时再前端显示每个 task 结果,而不必等到全部执行完再获取结果,因为有时候一个 playbook 包含了好几个 task 的。

要实现这个功能应该怎么搞法。

或者各位大佬在实现 django 执行 ansible playbook 任务时候,实时返回执行信息到前端怎么搞的。

大佬有話說 (5)

  • 資深大佬 : Haujilo

    快糙猛的方法就是把这些 task 的 json 日志对象合并成 json 日志对象列表存储在一个 SQL 数据库的 JSON field 或者 mongo 或者其他你喜欢的存储,playbook 运行要有状态,然后前端根据状态定时轮训,状态为结束就停止轮训。

  • 資深大佬 : Haujilo

    我之前做过一个,用户量不大,转化成 application/json-seq 类型直接存成进 MongoDB 的 GridFS 。

  • 資深大佬 : Firxiao

    可以参考下 awx 的做法

  • 資深大佬 : ericls

    你都有 websocket 了 为何不直接送到 websocket 呢?

  • 資深大佬 : vanwtf

    都用 websocketl 了,把那个 Callback 类重写一下,初始化的时候把你那个连接对象传进去,在触发调用的时候,把日志发出去就行啊,我用的事 channels 是这么写的

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具