我是Ansible的新手。我有一项任务是使用Ansible自动化基础架构级别1。
上述要求是:
可能有助于实现上述任务的具体问题
我无法根据内存消耗获取进程。我所能做到的只是列出大多数内存消耗的进程。我使用了以下命令:
ps -o pid --sort = - %mem | awk'NR< = 2 {print $ 0}'|尾巴-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