Ansible:重启消耗内存的进程> 75%

时间:2017-10-26 09:04:53

标签: linux bash shell ansible

我是Ansible的新手。我有一项任务是使用Ansible自动化基础架构级别1。

上述要求是:

  1. 登录服务器
  2. 查找消耗大部分内存(大于指定阈值)的进程
  3. 重新启动违规服务。
  4. 如果上述步骤在非工作时间(指定)失败,则重新启动服务器 等待警报清除或否则。
  5. 发送电子邮件至Level 2 / Tier 2组进行进一步的故障排除。
  6. 可能有助于实现上述任务的具体问题

    1. 如何获取内存消耗大于50%的所有进程 迭代它们以便正常重启服务?
    2. 如何使用服务模块实际重新启动服务以实现动态 服务名称?
    3. 我无法根据内存消耗获取进程。我所能做到的只是列出大多数内存消耗的进程。我使用了以下命令:

        

      ps -o pid --sort = - %mem | awk'NR< = 2 {print $ 0}'|尾巴-1

1 个答案:

答案 0 :(得分:1)

您要执行的任务是“重新启动服务”。问题是确定您要启动的服务。完成后,您可以触发剧本(甚至是任务的单个临时执行)。

您需要在进程名称和服务之间建立映射。您的监视将引发一系列违反SLO并触发补救的过程。假设它是Ansible剧本。您将需要一个看起来像这样的任务:

true

这意味着您有一个变量- name: Restart services which consume to much memory service: name: "{{ item }}" state: restarted with_items: bad_services ,它只是服务名称列表。您可以注册一些变量来确定该任务已经通过还是失败,然后适当地处理结果。可以将其作为环境变量传递:

bad_services