我正在使用Ansible將一個框架(Git克隆,運行安裝腳本)部署到服務器。安裝步驟,用於運行install.sh
這樣的腳本:如何確定腳本是否以前使用Ansible運行?
- name: Install Foo Framework
shell: ./install.sh
args:
chdir: ~/foo
如何確定我是否已執行在Ansible上次運行這一步呢?我想爲此步驟添加一個when
條件,該條件僅在install.sh
腳本以前未運行時纔會執行。
install.sh
腳本會執行一些操作(替換用戶主目錄中的某些文件),但是腳本以前是否只是查看這些文件並不明顯。 ~/foo.sh
文件可能之前已存在,尚不清楚它是由安裝腳本替換還是之前存在。
Ansible中有一種方法可以在服務器上存儲一個值,讓我確定此特定任務是否已被執行過?或者,我應該在用戶的主目錄中創建一個標記文件(例如~/foo-installed
),以便稍後調用這本playbook?
做了一些進一步的研究,它看起來像'touch'和'creates'選項的組合應該做的伎倆,類似於這裏的答案︰http://stackoverflow.com/questions/26409164/ansible-ignore-運行一次配置任務 – nwinkler 2015-03-19 12:54:56