让我们说下面的盐叫。如果文件存在,我希望盐不再执行。
在下面的例子中。它应该执行run-aerospike-mem_disk-check,但如果它检测到check_bad_conf中存在文件,则执行一次。它不应该执行run-aerospike-config并在盐中获得一些RED颜色。如何实现它。
让我们说下面的盐叫。如果文件存在,我希望盐不再执行。
在下面的例子中。它应该执行run-aerospike-mem_disk-check,但如果它检测到check_bad_conf中存在文件,则执行一次。它不应该执行run-aerospike-config并在salt执行中获得一些RED颜色作为失败。如何实现它。
run-aerospike-mem_disk-check:
cmd.wait:
- name: /var/local/aero_dmcheck.sh
- watch:
- file: /var/local/aero_config
check_bad_conf:
file.exist : /tmp/badconf
- failhard : yes
run-aerospike-config:
cmd.wait:
- name: /var/local/aero_config.pl
- watch:
- file: /var/local/aero_config.yml
答案 0 :(得分:0)
请说清楚。
为什么你在" RED"?之后如此糟糕
只有在存在错误文件的情况下才能运行disk-check
?
如果是这样,它不能运行aerospike-config
?
无论文件是否仍然存在,都要运行一次?
cmd.wait
接受onlyif
参数,您可以在其中运行命令来断言文件缺失/存在/任何内容(它是退出代码驱动的)。
但是你需要知道如果不满足onlyif
,状态变为绿色而不是红色
如果给定文件存在,还有creates
参数专门用于运行命令。
请参阅cmd
manual
由于您可能希望仅在aerospike-config
运行时才能运行disk-check
,否则使用file.missing
就足够了:
check:
file.missing:
- name: /tmp/badconf
run-aerospike-config:
cmd.wait:
- name: /var/local/aero_config.pl
- watch:
- file: /var/local/aero_config.yml
- require:
- file: check
详细了解Salt requisites here
如果您希望run-aerospike-mem_disk-check
脚本运行一次,为什么不使用cmd.script
并添加stateful
argument以禁止进一步执行?
答案 1 :(得分:-1)
我实际上从未真正使用它,但你可以使用某种" if-statement"。看看这个:
Check file exists and create a symlink
我认为在你的情况下file.present
或file.absent
会适合。
希望有所帮助。