使用Ansible shell模块时,如何增加控制台输出的行长度?
解决Ansible 2.14 Shell模块输出行截断问题
问题说明
在Ansible 2.14中使用shell模块执行df -h时,部分挂载点较长的文件系统行输出会在79个字符后被截断,但通过SSH直接登录机器执行该命令能显示完整内容。
可行解决方案
1. 修改Ansible全局配置调整行宽限制
编辑ansible.cfg文件(若无则在项目目录或用户家目录创建),添加以下配置项:
[defaults] stdout_callback = default stdout_line_length = 1000 # 可根据实际需求设置更大数值
该配置会修改Ansible默认输出回调的行宽上限,让长行内容完整展示。
2. 任务内设置环境变量模拟宽终端
在shell模块任务中指定COLUMNS环境变量,强制df命令使用宽终端格式输出:
- name: 执行df -h获取完整输出 shell: df -h environment: COLUMNS: 1000 register: df_result
之后通过{{ df_result.stdout }}即可获取完整的命令输出内容。
3. 改用raw模块执行命令
raw模块不会对命令输出做格式化处理,直接返回原始结果,适合需要完整输出的场景:
- name: 通过raw模块执行df -h raw: df -h register: df_raw_result
查看输出时调用{{ df_raw_result.stdout }}即可。
内容的提问来源于stack exchange,提问作者Aditya Siddarth
相关产品推荐
相关产品推荐

