我有具有包含在它下面任務的ansible劇本:Ansible:檢查是否存在的文件,並將它們複製
- hosts: hosts
serial: 1
tasks:
- include: tasks/webapps.yaml warfiles={{ item }}
with_items:
- test1.war
- test2.war
和任務文件是:
---
- name: Check war files in release
local_action: stat path="/home/ansible/rel/{{ RELEASE }}/webapps/{{ warfiles}}"
register: result
- name: Copy war files from release
synchronize:
src: /home/ansible/rel/{{ RELEASE }}/webapps/{{ warfiles }}
dest: /destination/
checksum: yes
archive: no
when: result.stat.exists
當我運行劇本我得到這個輸出: 任務[檢查發佈中的war文件] ********************************** ************ ok:[1.1.1.1 - > localhost]
TASK [Copy war files from release] *********************************************
changed: [1.1.1.1]
<fcsT...... test1.war
TASK [Check war files in release] **********************************************
ok: [1.1.1.1.1 -> localhost]
TASK [Copy war files from release] *********************************************
changed: [1.1.1.1]
<fcsT...... test2.war
所需輸出: 任務[檢查發佈中的war文件] ********************************** ************ OK:1.1.1.1.1 - >本地主機]
TASK [Copy war files from release] *********************************************
changed: [1.1.1.1]
<fcsT...... test1.war
<fcsT...... test2.war
我試圖讓劇本首先檢查文件是否存在,後做複製任務,因此它將全部很好地顯示。有沒有辦法做到這一點,而無需另外執行另一項任務。我希望能夠將「register:result」作爲一個數組存儲,如果文件存在,並且在從數組中提取文件之後進行存儲。我對新人來說很陌生。謝謝
感謝有關統計模塊的提示,但是我期待更多從我如何運行「檢查發佈WAR文件」以數組作爲輸入點和級聯之後,以「複製戰爭文件」碼 – Dusty