Ansible新手咨询:简化ps命令输出解析、跳过表头提取进程名的方法
Ansible 提取ps输出进程名的优化方法咨询
我是Ansible初学者,目前想实现的需求很明确:
- 执行
ps类的系统命令 - 逐行处理命令返回的输出内容
- 跳过包含表头(如PID这类字段)的第一行
- 仅提取进程名称列的取值,不需要其他列的内容
我现在的实现已经能做到跳过输出列表的第一个表头元素,但总觉得绕了弯,不确定是不是有更简便的写法——比如把输出存入单独数组,循环遍历每个条目时直接用awk或sed过滤进程名,会不会比现在的方案更优?
我目前写的Playbook实现如下:
name: Get process hosts: localhost tasks: - name: Get process command: "ps" register: ps_output - name: Set list length set_fact: array_end_index: "{{ ps_output.stdout_lines | length - 1 }}" - name: List all but last item debug: msg: "{{ ps_output.stdout_lines[item] }}" loop: "{{ range(1, (array_end_index | int)) | list }}"
我自己也判断这版实现大概率不是最优解,想请教有没有更简便的实现路径?
内容的提问来源于stack exchange,提问作者TCJR
相关产品推荐
相关产品推荐

