我正在使用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