我正在尝试将以下命令集成到salt状态:
mysql_install_db --user=mysql --basedir=/usr/ --ldata=/data/mysql/
但仅当/ data / mysql为空或mysql不包含数据库时。
有人可以建议一个好方法吗?
提前致谢
答案 0 :(得分:3)
在任何州,您都可以使用unless
或onlyif
条件。这些条件是在对状态进行评估时对minion启动的命令。
根据您的需要,您可以使用:
mysql_install_db:
cmd.run:
- name: mysql_install_db --user=mysql --basedir=/usr/ --ldata=/data/mysql/
- onlyif: test -z "$(ls -A /data/mysql)"
答案 1 :(得分:1)
在状态文件中使用unless
验证是否存在路径:
mysql_install_db:
cmd.run:
- name: mysql_install_db --user=mysql --basedir=/usr/ --ldata=/data/mysql/
- unless: file.path_exists_glob('/data/mysql/*')
修改强>
正如@Christophe所述,该州的先前版本存在一些问题。基于此以及我认为最合适的状态更新了状态。