Size: a a a

2020 March 29

R

Roman in Saltstack
не работает из за того что там двоеточие
источник

L

LightVik in Saltstack
пробовал
источник

L

LightVik in Saltstack
а разница между '' и "" какая?
источник

L

LightVik in Saltstack
needs to be formed as a list если использовать "" или ''
источник

R

Roman in Saltstack
LightVik
пробовал
везде? у вас в именах (id) стейтов тоже ip, их тоже в кавычки, целиком
источник

L

LightVik in Saltstack
Roman
везде? у вас в именах (id) стейтов тоже ip, их тоже в кавычки, целиком
{% for ip in salt['pillar.keys']('hosts:present') %}
{{sls}}-"{{ip}}"-present:
 host.present:
   - ip: "{{ip}}"
   - names:
     {% for hostname in salt['pillar.get']('hosts:present:'~ip) %}
     - {{hostname}}
     {% endfor %}
   - clean: True
{% endfor %}

{% for ip in salt['pillar.keys']('hosts:absent') %}
{% set hostnames = salt['pillar.get']('hosts:absent:'~ip) %}
{{sls}}-"{{ip}}"-absent:
 host.absent:
   - ip: "{{ip}}"
   - names:
     {% for hostname in hostnames %}
     - {{hostname}}
     {% endfor %}
{% endfor %}
источник

L

LightVik in Saltstack
needs to be formed as a list
источник

L

LightVik in Saltstack
ответ меняется если пробовать менять тут:
{% for ip in salt['pillar.keys']('hosts:absent') %}
источник

R

Roman in Saltstack
LightVik
ответ меняется если пробовать менять тут:
{% for ip in salt['pillar.keys']('hosts:absent') %}
ну значит у вас в {{ hostname }} тоже двоеточие

раз
"{{sls}}-{{ip}}-absent":

два
   - names:
     {% for hostname in hostnames %}
     - {{hostname}}
     {% endfor %}

можно заменить на
   - names: {{ hostnames|tojson }}
источник

L

LightVik in Saltstack
hosts:
 present:
   '127.0.0.1':
     - 'localhost'
     - 'localhost.localdomain'
     - 'localhost4'
     - 'localhost4.localdomain4'

 absent:
   '::1':
     - 'localhost6'
     - 'localhost6.localdomain6'
источник

L

LightVik in Saltstack
The 'names' argument in state 'sls/config/centos/8/hosts-"::1"-absent' in SLS 'sls/config/centos/8/hosts' needs to be formed as a list
источник

L

LightVik in Saltstack
и правда на names жалуется
источник

L

LightVik in Saltstack
{% for ip in salt['pillar.keys']('hosts:present') %}
{{sls}}-"{{ip}}"-present:
 host.present:
   - ip: "{{ip}}"
   - names:
     {% for hostname in salt['pillar.get']('hosts:present:'~ip) %}
     - "{{hostname}}"
     {% endfor %}
   - clean: True
{% endfor %}

{% for ip in salt['pillar.keys']('hosts:absent') %}
{% set hostnames = salt['pillar.get']('hosts:absent:'~ip) %}
{{sls}}-"{{ip}}"-absent:
 host.absent:
   - ip: "{{ip}}"
   - names:
     {% for hostname in hostnames %}
     - "{{hostname}}"
     {% endfor %}
{% endfor %}
источник

L

LightVik in Saltstack
{% for ip in salt['pillar.keys']('hosts:present') %}
{{sls}}-"{{ip}}"-present:
 host.present:
   - ip: "{{ip}}"
   - names:
     {% for hostname in salt['pillar.get']('hosts:present:'~ip) %}
     - "{{hostname}}"
     {% endfor %}
   - clean: True
{% endfor %}

{% for ip in salt['pillar.keys']('hosts:absent') %}
{{sls}}-"{{ip}}"-absent:
 host.absent:
   - ip: "{{ip}}"
   - names:
     {% for hostname in salt['pillar.get']('hosts:present:'~ip)|tojson %}
     - "{{hostname}}
     {% endfor %}
{% endfor %}
источник

L

LightVik in Saltstack
|tojson помог
источник

L

LightVik in Saltstack
интересно почему так
источник

R

Roman in Saltstack
очевидно потому что там получается json и проблема с двоеточиями исчезает :)
источник

L

LightVik in Saltstack
Roman
очевидно потому что там получается json и проблема с двоеточиями исчезает :)
угу. но после tojson стейт просто не отрабатывает убрав :
источник

R

Roman in Saltstack
обычно нет смысла "рисовать" списки и прочие структуры с помощью Jinja если у вас список или надо передать словарь как переменную в context то  надженее использовать tojson, это кстати кастомный фильтр Солтовый, в Jinja есть аналогичный json
источник

R

Roman in Saltstack
LightVik
угу. но после tojson стейт просто не отрабатывает убрав :
сммотрите что там у вас получается с помощью state.show_sls
источник