擅长:python、mysql、java
<p>给将来犯同样错误的人。该错误似乎与快照模块或任何其他模块无关。输出将打印在stdout/stderr上,新行(\n)将转义到\\n。
流模块将尝试在内容中查找b'\n',但由于新行被转义,它将无法找到它。因此会出现错误</p>
<p>如问题中所述,错误源是asyncio/streams.py模块,而不是ansible本身</p>
<p>克服此问题的一种方法是通过对任务使用no_log:true来限制ansible输出</p>
<p>ansible将打印合理的错误消息,而不是抛出python的错误</p>
<pre class="lang-yaml prettyprint-override"><code>- name: Check hbase regionserver jmx exporter
hosts: hbase_regionservers
tasks:
- name: Check 'num regions' item
uri:
url: "http://{{ inventory_hostname }}:26010/metrics"
return_content: true
register: metrics
no_log: true
failed_when: metrics.content.find('hbase_regionserver_tables_num_tables 2.0') == -1
</code></pre>