我必须使用可下载的最新版本的软件来升级多台服务器,并将其解压缩。子目录中的每个文件夹都显示应下载的软件类型。我不知道如何根据文件夹名称自动执行下载正确文件的过程
在服务器上执行其他任务后,我必须下载并解压缩该软件。我有他们需要的每个目录和每种软件的路径。我有一个指向每个可下载文件的链接的json文件。我打算将子目录名称映射到软件类型,然后下载该类型下的链接
文件路径:
- name: "Create a list of all bars in the foo folder"
- find:
paths: /usr/local/foo/bar/
recurse: no
file_type: directory
register: bar
- name: "Filter the list of subbars to just the directories"
set_fact:
bar_list: "{{ item }}"
with_items:
- "{{ bar.files | map(attribute='path') | list }}"
这将产生如下列表:/usr/local/foo/bar/examplebar
下载类型命名为子目录的路径:
- name: "Create a list of bars and their subbars"
find:
paths: "{{ bar_list }}"
recurse: no
file_type: directory
register: bardirectory
- name: "Filter the list of subbars to just their directories"
set_fact:
bar_filtered: "{{ item }}"
with_items:
- "{{ bardirectory.files | map(attribute='path') | list }}"
这将产生如下列表:/usr/local/foo/bar/examplebar
/ examplesoftware1
带有链接的JSON文件:
[
var type, version, link;
{
"type": "examplesoftware1",
"version": "examplesoftware1V2",
"link": "https://www.link1.zip",
}
{
"type": "examplesoftware1",
"version": "examplesoftware2V2",
"link": "https://www.link2.zip",
}
{
"type": "examplesoftware1",
"version": "examplesoftware3V2",
"link": "https://www.link3.zip",
}
]
我不确定从这里去哪里。我有目标文件夹的路径,但是我不知道如何将它们映射到JSON文件并下载存储在其中的链接。