使用rest api

时间:2017-10-28 07:44:16

标签: ansible

我在下面写了代码,通过rest api使用ansible uri模块上传tar.gz文件

- name: Upload tar.gz file
  hosts: localhost
  tasks:
       - name: Upload tar.gz file
         uri:
           url: "<url>/upload_tar_gz"
           method: POST
           HEADER_Content-Type: "multipart/form-data"
           force_basic_auth: yes
           user: "{{username}}"
           password: "{{password}}"
           status_code: 200
           validate_certs: no
           return_content: yes
           body_format: json
           body: "{{ lookup('file','test_file.tar.gz') }}"

但是得到以下错误:

  

致命:[localhost]:失败! =&GT; {“failed”:true,“msg”:“运行查找插件'文件'时发生未处理的异常。错误是原始消息:'utf8'编解码器无法解码位置1中的字节0x8b:无效的起始字节” }

看起来文件插件无法加载tar.gz文件。有什么具体原因吗?

1 个答案:

答案 0 :(得分:1)

由于通过jinja2实现,

查找将永远无法处理二进制数据。

请参阅下面的ansible github链接 https://github.com/ansible/ansible/issues/11594