Как условно скопировать файлы с использованием ansible? - PullRequest
1 голос
/ 05 ноября 2019

Пожалуйста, обратитесь к конфигурации ниже, идея заключается в том, чтобы выполнить развертывание конфигурации, если файл конфигурации найден

Я пробовал много вариантов выражения этой идеи, особенно в последних 3 строках, но яя не могу обернуть мою голову вокруг , соединяющего результаты цикла статистики с моим циклом развертывания осмысленно

У меня есть список таких структур, как:

config_vars:
  - war_name: TestNode_app1.war
    standalone_name: jboss_standalone.xml
    jboss_service_name: jboss_app1
    jboss_folder: jboss_app1
  - war_name: TestNode_app2.war
    standalone_name: jboss_app2_standalone.xml
    jboss_service_name: jboss_app2
    jboss_folder: jboss_app2

В книге игр у меня есть

...
...

tasks:
  - name: check if war exists
    stat:
      path: files/wars/{{ item.war_name }}
    register: war_file
    loop: "{{ config_vars }}"

  - name: Deploy config file
    copy: src=files/wars/{{ item.war_name }} dest=/opt/{{ item.jboss_folder }}/standalone/deployments/{{ item.war_name }}
    when: item.stat.exists
    loop: "{{ config_vars }}"
    with_items: war_file.results

Ожидаемые результаты: для файла войны, который существует, цикл развертывания должен взять его и сделать копию. и если не существует, никаких действий Фактический результат: разн. Для вышеуказанного конфига у меня есть:

ERROR! duplicate loop in task: items
The offending line appears to be:


    - name: deploy WAR file
      ^ here
...