Я пытаюсь создать шаблон, в котором он будет получать IP-адрес консул-серверов как DNS, используя mine.get
. В командной строке вроде работает нормально, но при использовании в контексте шаблона ничего не возвращает
Вот моя установка
В /srv/pillar я добавил mines.sls
и изменил top.sls
следующим образом
мины.sls
mine_functions:
network.ip_addrs: []
топ.sls
base:
'*':
- mines
После обновления столбцов и использования mine.send
и mine.update
я мог запросить у сервера saltmaster IP-адреса для консула.
sudo salt 'redis*' mine.get 'consul*' network.ip_addrs
redis-001-stage.c.project-gce.internal:
----------
consul-001-adm.c.project-gce.internal:
- 192.16.0.1
consul-002-adm.c.project-gce.internal:
- 192.16.0.2
Я попытался применить тот же принцип в файле состояния, используя шаблоны.
# Resolver Configuration
resolv-file:
file.managed:
- name: /etc/resolv.conf
- user: root
- group: root
- mode: '0644'
- source: salt://resolver/files/resolv.conf
- template: jinja
- defaults:
nameservers: {{ salt['mine.get']('*', 'network.ip_addrs', 'eth1').items() }}
и в разрешении.conf
{%- for nameserver in nameservers %}
nameserver {{ nameserver }}
{%- endfor %}
но серверы имен всегда пустые, может кто-нибудь посоветовать?