如何配置ansible-molecule以修改test/converge阶段的错误输出格式
Molecule 场景下Ansible输出格式化配置方案
Molecule默认不会自动加载项目根目录的ansible.cfg配置,可通过以下两种方式实现输出格式优化,消除错误信息中的转义字符:
方案1:将配置写入场景的molecule.yml文件
在对应测试场景的molecule.yml中,找到provisioner配置段,添加config_options字段传入Ansible输出相关配置,示例如下:
provisioner: name: ansible config_options: defaults: stdout_callback: yaml stderr_callback: yaml display_skipped_hosts: false callback_result_format: yaml
该配置会随Molecule场景一同生效,无需额外指定参数。
方案2:运行时指定Ansible配置文件路径
通过环境变量ANSIBLE_CONFIG强制指定要加载的配置文件,直接在执行命令时添加前缀即可:
ANSIBLE_CONFIG=./ansible.cfg molecule converge
该方法适合临时调试,不需要修改Molecule配置文件。
常用优化配置说明
stdout_callback = yaml:将标准输出格式化为易读的YAML结构,自动解析换行、特殊符号,避免输出转义字符stderr_callback = yaml:错误输出同步使用YAML格式化,解决报错信息中的转义字符问题display_skipped_hosts = false:隐藏跳过的任务输出,减少冗余信息callback_result_format = yaml:统一回调结果的输出格式,进一步提升可读性
配置完成后重新执行测试命令,即可看到和原生ansible-playbook一致的干净输出效果。
内容的提问来源于stack exchange,提问作者tribbloid
相关产品推荐
相关产品推荐

