У меня есть Ansible playbook, который делает несколько вещей, как показано ниже -
- Загрузка артефактов с Nexus на локальный сервер (Ansible Master).
- Копирование этих артефактов на несколько удаленных машин, скажем, server1 / 2/3 et c ..
И я использовал роли в моей пьесе и роль (repodownload), которая загружает артефакты, которые я хочу запустить только один раз потому что почему я хочу скачать то же самое снова. Я попытался использовать run_once: true, но, думаю, это не сработает, потому что это работает только для одного прогона playbook, но мой playbook запускается несколько раз для нескольких хостов.
---
- name: Deploy my Application to tomcat nodes
hosts: '{{ target_env }}'
serial: 1
roles:
- role: repodownload
tags:
- repodownload
- role: copyrepo
tags:
- copyrepo
- role: stoptomcat
tags:
- stoptomcat
- role: deploy
tags:
- deploy
Здесь target_env передается из командной строки, и это удаленная группа хостов. Любая помощь приветствуется.
Ниже приведен код из main.yml из роли repodownload -
- connection: local
name: Downloading files from Nexus to local server
get_url: url="{{ nexus_url }}/{{item}}/{{ myvm_release_version }}/{{item}}-{{ release_ver }}.war" dest={{ local_server_location }}
with_items:
- "{{ temps }}"