ansible中文结果返回乱码

2016年3月20日 发表评论 阅读评论

在使用ansible执行查询时,如果有中文结果返回时,会出现乱码,具体如下图:

ansible-lang

通过查看官方文档:module-lang

发现可以通过修改/etc/ansible/ansible.cfg中两项设置语言类型进行解决:

#module_lang    = C
#module_set_locale = False
module_lang    = zh_CN.UTF-8
module_set_locale = True

增加上面两行,其默认配置为lang为C,locale设置默认是False。如果是使用的ansible api 或者playbook,可以在其调用时,通过environment 进行设置,如下是ansible 1.9以下版本的API,具体调用如下:

runner = ansible.runner.Runner(
    module_name = m_name,
    module_args = m_args,
    pattern = ip,
    remote_port = r_port,
    remote_user = r_user,
    private_key_file = key_path,
    forks = forks_num,
    environment = {'LANG':'zh_CN.UTF-8','LC_CTYPE':'zh_CN.UTF-8'}
    )

playbook调用时,一样可以通过environment 设置语言或者代理信息等 。




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.