gue*_*tli 0 conditional saltstack
我想执行这个状态:
backup_log_readable:
acl.present:
- name: /var/log/backup
- acl_type: user
- acl_name: monitor
- perms: rx
- recurse: True
Run Code Online (Sandbox Code Playgroud)
但这只有在/var/log/backup
存在时才会发生。
如何在盐中做到这样的条件?
小智 8
替代onlyif: test -d /var/log/backup
方法(这可能是最好的方法),您可以:
1)用 jinja 包裹所有东西,如果:
{%- if salt['file.directory_exists' ]('/var/log/backup') %}
backup_log_readable:
acl.present:
- name: /var/log/backup
- acl_type: user
- acl_name: monitor
- perms: rx
- recurse: True
{%- endif %}
Run Code Online (Sandbox Code Playgroud)
2)使用file.exists
状态作为先决条件:
backup_log_exists:
file.exists:
- name: /var/log/backup
backup_log_readable:
acl.present:
- name: /var/log/backup
- acl_type: user
- acl_name: monitor
- perms: rx
- recurse: True
- require:
- file: backup_log_exists
Run Code Online (Sandbox Code Playgroud)
这样你会在摘要中看到一个失败的状态,所以它不会像 onlyif 和 jinja 方法那样完全透明
3)在运行acl状态之前创建目录:
backup_log_dir:
file.directory:
- name: /var/log/backup
backup_log_readable:
acl.present:
- name: /var/log/backup
- acl_type: user
- acl_name: monitor
- perms: rx
- recurse: True
- require:
- file: backup_log_dir
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8538 次 |
最近记录: |