使用 grain.present 的预期行为是什么?
What is the expected behavior of using grain.present?
我正在尝试使用 salt 移动我的 php.ini 文件,但我只希望它在第一个 运行 上 运行 一次。我正在尝试使用盐粒来做到这一点,但这是不一致的。有什么想法吗?
#phpinifile.sls
{%- set php_ini_initialized = salt['grains.get']('PHP_INI_INITIALIZED') | default( False, true) %}
{% if php_ini_initialized == False %}
etc-php-70-cli-phpini:
file.managed:
- name: /etc/php/7.0/cli/php.ini
- source: salt://billing/sources/etc/php/7.0/cli/php.ini
- user: root
- group: root
- mode: 644
- context:
set_pear_path: True
- template: jinja
PHP_INI_INITIALIZED:
grains.present:
- value: True
{% endif %}
使用 grain.present 的预期行为是什么?
它将确保颗粒存在。换一种说法。 Ik会在它不在的时候做到。
有什么想法吗?
您要确保 php.ini 文件仅在您的 minion 上放置一次。在第一个 'state.apply'
file.managed
将确保您的文件存在,具有正确的权限和正确的内容。
当您执行另一个 state.apply 时,Salt 将看到该文件已经可用且内容正确并继续。在这种情况下,您可以 运行 任意多次都没有问题。
如果您的 php.ini 文件在被 Salt 放置后被手动更改,我知道您想确保只 运行 它一次。在这种情况下,您可以像这样使用 unless
必要条件:
phpini:
file.managed:
- name: /etc/php/7.0/cli/php.ini
- source: salt://billing/sources/etc/php/7.0/cli/php.ini
- unless: ls /etc/php/7.0/cli/php.ini
unless
必要条件指定仅当任何指定命令 return 为 False 时,状态才应 运行。在这种情况下,如果文件不存在,ls
returns false。
希望对您有所帮助。
我正在尝试使用 salt 移动我的 php.ini 文件,但我只希望它在第一个 运行 上 运行 一次。我正在尝试使用盐粒来做到这一点,但这是不一致的。有什么想法吗?
#phpinifile.sls
{%- set php_ini_initialized = salt['grains.get']('PHP_INI_INITIALIZED') | default( False, true) %}
{% if php_ini_initialized == False %}
etc-php-70-cli-phpini:
file.managed:
- name: /etc/php/7.0/cli/php.ini
- source: salt://billing/sources/etc/php/7.0/cli/php.ini
- user: root
- group: root
- mode: 644
- context:
set_pear_path: True
- template: jinja
PHP_INI_INITIALIZED:
grains.present:
- value: True
{% endif %}
使用 grain.present 的预期行为是什么?
它将确保颗粒存在。换一种说法。 Ik会在它不在的时候做到。
有什么想法吗?
您要确保 php.ini 文件仅在您的 minion 上放置一次。在第一个 'state.apply'
file.managed
将确保您的文件存在,具有正确的权限和正确的内容。
当您执行另一个 state.apply 时,Salt 将看到该文件已经可用且内容正确并继续。在这种情况下,您可以 运行 任意多次都没有问题。
如果您的 php.ini 文件在被 Salt 放置后被手动更改,我知道您想确保只 运行 它一次。在这种情况下,您可以像这样使用 unless
必要条件:
phpini:
file.managed:
- name: /etc/php/7.0/cli/php.ini
- source: salt://billing/sources/etc/php/7.0/cli/php.ini
- unless: ls /etc/php/7.0/cli/php.ini
unless
必要条件指定仅当任何指定命令 return 为 False 时,状态才应 运行。在这种情况下,如果文件不存在,ls
returns false。
希望对您有所帮助。