Ansible 将get_url下载的zip文件作为变量传递给unarchive

Ansible 将get_url下载的zip文件作为变量传递给unarchive,ansible,Ansible,我刚刚开始使用Ansible自动化二进制部署 下载zip文件并尝试通过将下载的zip文件作为要解压缩/未归档的变量传递来解压时,始终会引发错误 下面是YML的片段: - name: Download binaries get_url: url={{ download_server }} url_username={{ username }} url_password={{ passwd }} dest={{ base_dir }} register: bi

我刚刚开始使用Ansible自动化二进制部署

下载zip文件并尝试通过将下载的zip文件作为要解压缩/未归档的变量传递来解压时,始终会引发错误

下面是YML的片段:

- name: Download binaries
  get_url:
    url={{ download_server }}
    url_username={{ username }}
    url_password={{ passwd }}
    dest={{ base_dir }}
  register: bin_files

- set_fact:
  my_unzipped_file: "{{ bin_files[0].stdout }}"

- name: UNZIPPING the files
  unarchive: src={{ base_dir }}/{{ item }} dest={{ base_dir }} copy=no
  with_items: my_unzipped_file

如果它不是受用户/通行证保护的URL,则可以删除“get_URL”模块,并将该URL放在非归档模块的src:中

检查以下示例:

另一种方法是将您的所有文件下载到一个目录{bin_dir}}中,例如,并在非归档模块“with_fileglob”中使用来解压缩all.zip/.tar.gz等

例如:

- name: UNZIPPING the files
  unarchive:
    src: "{{ item }}"
    dest: "{{ base_dir }}/"
    copy: no
  with_fileglob:
  - "{{ base_dir }}/*.zip"
  - "{{ base_dir }}/*.tar.gz"
另一个提示是,您应该在模块中删除“=”代码样式,并移动到“:”,正如您在上面看到的,它更容易让人阅读

您更正了代码段:

- name: Download binaries
  get_url:
    url: {{ download_server }}
    url_username: {{ username }}
    url_passwor: {{ passwd }}
    dest: {{ base_dir }}
  register: bin_files

- name: UNZIPPING the files
  unarchive:
    src: {{ base_dir }}/{{ item }}
    dest: {{ base_dir }}
    copy: no
  with_items:
  - "{{ bin_files.stdout }}"

欢迎来到StackoverFlow。请阅读并了解。错误消息在哪里?文本缩进似乎已损坏。感谢Levich。作品