如何使用Ansible从nexus / artifactory / webserver中的特定文件夹下载所有内容

时间:2020-06-16 15:53:24

标签: ansible synchronization artifactory

第一个帖子在这里。

我有许多带有变量名的文件(我没有选择它们),但我们称它们为:

test1.rpm 比萨 Pencil.tar

名称和扩展名更改(它们由另一个团队控制)。我想做的是通过网络资源(例如Artifactory / Nexus位于一个称为INT1的已知文件夹中。

因此,Artifactory / Nexus或其他服务提供商在名为INT1的文件夹中有许多文件。

我希望Ansible有效地转到已知文件夹,然后下载所有项目。

我看了以下内容:

  • get_uri,但通常您需要一个文件名列表(我没有)
  • rsync-但这对于文件系统到文件系统的传输更多

有人有任何建议或解决方案吗?

2 个答案:

答案 0 :(得分:1)

我希望Ansible有效地转到已知文件夹,然后下载所有项目。

您的句子中有一个“ and”,它对应于您的剧本需要执行的两个动作:

  1. 获取工件列表
  2. 根据该列表获取工件
- uri:
    url: '{{ artifactory_url }}/INT1'
    return_content: yes
  register: int1_response

- set_fact:
    the_urls: >-
      {# 
      here is where your code goes 
      to extract the list of files based 
      on the contents of whatever the server returns
      #}

- get_url:
    url: '{{ item }}'
    dest: /tmp/my/local/path/{{ item | basename }}
  with_items: '{{ the_urls }}'

答案 1 :(得分:0)

Ansible专家不多,但是如果目标是下载文件夹的内容,则可以使用Artifactory:

Artifactory给出了一条路径,使一步下载一个目录的内容变得非常容易。