首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要根据在检查模式下执行的ansible playbook输出生成CSV文件报告(预演)

需要根据在检查模式下执行的ansible playbook输出生成CSV文件报告(预演)
EN

Stack Overflow用户
提问于 2019-02-25 03:39:26
回答 2查看 12K关注 0票数 1

我正在运行一个角色来做系统硬化使用ansible,这看起来很好,寻找生成一个'CSV‘文件与以下字段- {IP_address,Task_Name,状态( ok或更改)之前执行的剧本。我的想法是在执行之前获得一份报告。

以下是实战手册的示例输出:

代码语言:javascript
复制
TASK [system_hardening : Include OS Specific Variables] ************************
ok: [192.168.10.10]

TASK [system_hardening : Configure NTP - Install Package] **********************
ok: [192.168.10.10]

TASK [system_hardening : Disable chronyd services] *****************************
ok: [192.168.10.10]

TASK [system_hardening : Set some kernel parameters] ***************************
changed: [192.168.10.10] => (item={u'regexp': u'server 0.rhel.pool.ntp.org iburst', u'line': u'server google.com iburst'})
changed: [192.168.10.10] => (item={u'regexp': u'server 1.rhel.pool.ntp.org iburst', u'line': u'server  google.com iburst'})
changed: [192.168.10.10] => (item={u'regexp': u'server 2.rhel.pool.ntp.org iburst', u'line': u'server  google.com iburst'})
changed: [192.168.10.10] => (item={u'regexp': u'server 3.rhel.pool.ntp.org iburst', u'line': u'server  google.com iburst'})

TASK [system_hardening : restart ntp services] *********************************

changed: [192.168.10.10]

TASK [system_hardening : Set Password Requirement Parameters Using pam_cracklib (Install)] ***
ok: [192.168.10.10]

TASK [system_hardening : Ensure password reuse is limited (/etc/pam.d/system-auth)] ***
changed: [192.168.10.10]

TASK [system_hardening : Ensure password reuse is limited (/etc/pam.d/password-auth)] ***
changed: [192.168.10.10]

所需的CSV为

代码语言:javascript
复制
IP_Address,Task_Name, Status
192.168.10.10 ,SSH_Checks ,ok
192.168.10.11, SSH_Checks,changed

请输入任何内容。

EN

回答 2

Stack Overflow用户

发布于 2019-02-25 16:02:45

代码语言:javascript
复制
ansible-doc -t callback -l

列出可用于manage stdout的插件。如果没有合适的选项,可以选择write one。

票数 0
EN

Stack Overflow用户

发布于 2020-05-17 12:50:55

我看到有一个JSON callback for Ansible。它将Ansible设置为以JSON格式显示通常会显示在屏幕上的输出。您可能会摄取JSON数据并轻松地将其转换为CSV。这里有一篇关于how to do the conversion的文章。

以下是帖子中的脚本:

代码语言:javascript
复制
# Python program to convert 
# JSON file to CSV 


import json 
import csv 


# Opening JSON file and loading the data 
# into the variable data 
with open('data.json') as json_file: 
    data = json.load(json_file) 

employee_data = data['emp_details'] 

# now we will open a file for writing 
data_file = open('data_file.csv', 'w') 

# create the csv writer object 
csv_writer = csv.writer(data_file) 

# Counter variable used for writing 
# headers to the CSV file 
count = 0

for emp in employee_data: 
    if count == 0: 

        # Writing headers of CSV file 
        header = emp.keys() 
        csv_writer.writerow(header) 
        count += 1

    # Writing data of CSV file 
    csv_writer.writerow(emp.values()) 

data_file.close() 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54855755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档