wstlwl 发表于 2018-7-29 07:46:30

Ansible 输出结果保存至 excel

  客户要求整理出所有服务器上所有用户,在ansible服务器上执行
  

ansible all -m shell -a "cat /etc/passwd|awk '{print $1}'"  

  输出结果如下,省略了一些。一个ip下面跟着用户:
  10.200.187.51
  root
  bin
  daemon
  adm
  10.200.151.94
  root
  bin
  daemon
  adm
  需要输出如下,即分为两列,ip列合并单元格:

  以下需先安装pandas
  pip install pandas
  

import pandas as pd  
import re
  
text = """
  
10.200.187.51
  
root
  
bin
  
daemon
  
adm
  
10.200.151.94
  
root
  
bin
  
daemon
  
adm
  
"""
  

  
data = text.strip().split("\n")
  

  
rs = []
  
ip = ""
  
for d in data:
  if re.match('\d+\.\d+\.\d+\.\d', d):
  ip = d
  else:
  rs.append((ip, d))
  
df = pd.DataFrame(rs, columns=["ip", "user"])
  
df = df.groupby(df["ip"]).apply(lambda x: x["user"])
  
df.to_excel("test1.xlsx")
页: [1]
查看完整版本: Ansible 输出结果保存至 excel