Size: a a a

2021 June 21

GG

George Gaál in Saltstack
шаблонизировать )
источник

*

*sm1Ly in Saltstack
понимаю про шаблонизировать, не понимаю как, кинь докой. принципа не понимаю.
источник

PO

Piu Octo in Saltstack
use grains and pillars, luke
источник

GG

George Gaál in Saltstack
да емае
источник

*

*sm1Ly in Saltstack
я взял:
https://docs.saltproject.io/en/latest/topics/tutorials/pillar.html

cat /srv/pillar/top.sls 
base:
 '*':
   - data

cat /srv/pillar/data.sls
info: some data

salt-ssh '*' saltutil.refresh_pillar
albb_hk_c_01:
   False

чяднт
?
источник

*

*sm1Ly in Saltstack
дебаг:
Executing job with jid 20210621130707661001
-------------------------------------------


[DEBUG   ] Using pkg_resources to load entry points
[DEBUG   ] Override  __grains__: <module 'salt.loaded.int.wrapper.grains' from '/usr/lib/python3.6/site-packages/salt/client/ssh/wrapper/grains.py'>
[DEBUG   ] Could not LazyLoad saltutil.refresh_pillar: 'saltutil.refresh_pillar' is not available.
[DEBUG   ] Performing shimmed, blocking command as follows:
saltutil.refresh_pillar
[DEBUG   ] Executed SHIM command. Command logged to TRACE
[DEBUG   ] Child Forked! PID: 2221684  STDOUT_FD: 12  STDERR_FD: 15
[DEBUG   ] VT: Salt-SSH SHIM Terminal Command executed. Logged to TRACE
[DEBUG   ] RETCODE 47.243.138.112: 0
[DEBUG   ] Using pkg_resources to load entry points
[DEBUG   ] LazyLoaded nested.output
источник

*

*sm1Ly in Saltstack
источник

*

*sm1Ly in Saltstack
а кто мне подскажет про шаблоны.
не понимаю.
https://pastebin.com/YML8xCKv

ругается:
salt-ssh  '*' state.sls tinc
[CRITICAL] Rendering SLS 'base:tinc' failed: while constructing a mapping
 in "<unicode string>", line 3, column 1
found conflicting ID '/etc/tinc/meshnet/tinc-up'
 in "<unicode string>", line 42, column 1
источник

*

*sm1Ly in Saltstack
что ему не нравится то?
источник

*

*sm1Ly in Saltstack
я упростил.
 init.sls                                                                               
{% for tinc_ip, tinc_host in pillar.items() %}

/etc/tinc/meshnet/tinc-up:
 file:
   - managed
   - mode: 755
   - source: salt://tinc/meshnet/tinc-up.jinja
   - template: jinja
   - context:
     tinc_ip: {{ tinc_ip }}

{% endfor %}


meshnet/tinc-up.jinja                                                                         

#!/bin/sh
ip link set $INTERFACE up
ip addr add {{ tinc_ip }}/32 dev $INTERFACE
ip route add 10.20.0.0/24 dev $INTERFACE
источник

*

*sm1Ly in Saltstack
все равно ругается.
[CRITICAL] Rendering SLS 'base:tinc' failed: while constructing a mapping
 in "<unicode string>", line 3, column 1
found conflicting ID '/etc/tinc/meshnet/tinc-up'
 in "<unicode string>", line 14, column 1
источник

KP

Kirill Proskurin in Saltstack
> found conflicting ID
источник

KP

Kirill Proskurin in Saltstack
id таски должен быть уникальным
источник

*

*sm1Ly in Saltstack
так, видимо я не так вызываю {% for tinc_ip, tinc_host in pillar.items() %}
источник

KP

Kirill Proskurin in Saltstack
Я бы пореклмендовал две вещи:
1) ВСЕГДА использовать аргумент -name: и НИКОГДА не использовать id как name как  у тебя сейчас
2) file.managed: - без переноса метода в аргументы
источник

R

Roman in Saltstack
потому что в цикле рендерятся стейты для всех хостов, при том они рендерятся с одинаковым именем, внутри цикла к ID всегда стоит добавлять какую-то переменную, которая меняется каждой итерацией

ну и наконец, чтоб для каждого хоста рендерился только "его личный" стейт, надо добавить if внутри цикла
источник

R

Roman in Saltstack
к первому плюсую, а вот перенос "метода в аргументы" иногда очень удобно, и позволяет более компактно и красиво все записать.
источник

KP

Kirill Proskurin in Saltstack
я хз - грепать становится в сто раз сложней
источник

YZ

Yerzhan Zhiyentayev in Saltstack
Хз юзать нейм как айди для меня прям кайф после ансибла
источник

KP

Kirill Proskurin in Saltstack
ведет к проблемам как выше
источник