要解析Ansible结果中的特定行,可以使用Ansible的stdout_lines属性来获取结果的每一行,并使用Python的字符串操作方法来查找特定行。
以下是一个示例代码,演示如何解析Ansible结果中的特定行:
import subprocess
import json
def run_ansible_playbook(playbook_path):
command = ['ansible-playbook', playbook_path]
result = subprocess.run(command, capture_output=True, text=True)
return result.stdout
def parse_specific_line(result, keyword):
lines = result.split('\n')
specific_lines = []
for line in lines:
if keyword in line:
specific_lines.append(line)
return specific_lines
# 运行Ansible playbook并获取结果
playbook_path = 'path/to/your/playbook.yml'
result = run_ansible_playbook(playbook_path)
# 解析特定行
keyword = 'specific keyword'
specific_lines = parse_specific_line(result, keyword)
# 打印特定行
for line in specific_lines:
print(line)
在这个示例中,我们首先定义了一个函数run_ansible_playbook来运行Ansible playbook,并返回结果的stdout。然后,我们定义了一个函数parse_specific_line来解析结果中的特定行。这个函数将结果分割为每一行,然后遍历每一行,如果特定关键字出现在行中,将该行添加到一个列表中。最后,我们打印出特定行。
你可以根据自己的需求修改这个示例代码,例如更改关键字、调整解析规则等。
上一篇:Ansible解析调试输出
下一篇:Ansible解析JSON的方法