ansible小技巧

  • 出现带'u'的 unicode编码, 在python里 .encode()回去,尤为是通过shell处理的,最好在shell中使用jinja2来处理一下python

    最好这种状况在shell模块使用jinja2的循环来代替shell的循环,从而得到一个列表stdout_linesshell

  • register的变量,后边判断是否认义不能用is defined要用|skipped这样的方式,set_fact定义的变量能够用is defined来判断
  • ansible中的dict类型经过点 . 调用下一级字段最多三级,三级以后用中括号[ ]json

    例如: - debug: var=out.json.versions["values"]编码

模块的执行,不管是执行或不执行 都会有changed字段输出, 执行成功与失败也都会有changed的字段输出,因此控制changed的状态就是很是重要的事情
shell模块执行成功就会changed: true ; 失败则是false ; 执行命令失败: 命令错误的状况并不输出failed的字段,由于要用is failed判断, 执行命令正确可是结果返回码不是0的状况下有failed字段,可是执行成功或失败都有rc字段,skipped则没有rc字段 输出。debug

register一个变量,不论该task是否被skipped,都会有defined状态,因此register的变量不能以defined来作判断,set_fact的能够用defined来判断。code

run_once时获取到的变量值是能够带入其余hosts的ip

相关文章
相关标签/搜索