получить имя хоста для шаблона дзиндзя в соли - PullRequest
0 голосов
/ 24 июня 2019

не знаю, с чего начать, но вот что у меня есть и что я пытаюсь сделать.

что у меня есть.

у меня есть три миньона как часть трехуровневого приложения с именем employee.

есть три сервера, называемые web01 как веб-сервер, app01 как сервер приложенийи db01 в качестве сервера базы данных.

каждый сервер имеет значение зерна,

здесь - каждый сервер и значения зерна и ключи этих значений.

web01.
grains value =
appname:employee and
tier:web

app01.
grains value =
appname:employee and
tier:app

db01.
grains value =
appname:employee and 
tier:db

что я пытаюсь сделать

Я пытаюсь отправить файлы конфигурации на web01 и app01, эти файлы конфигурации имеют переменные (имя хоста другого уровня minion) .. Конфигурация на web01 должна иметь имя app01 .. и конфигурация наУ app01 должно быть имя db01. Имя этих серверов должно быть выбрано на основе значения зерна.

например.

имя хоста сервера приложений, то есть сервер с гранулированным значением, равным «appname: employee и tier: app»

, не знаю, как это сделать.

слишком плохо знакомы с солью, и я не очень разбираюсь в этом, ни в шаблоне jinja.

любая помощь будет по достоинству оценена.

Спасибо

1 Ответ

0 голосов
/ 11 июля 2019

Так что, если я вас правильно понял, вы хотите, чтобы файл конфигурации был на web1 и app1, содержащем все имена хостов.

Если это так, вы можете использовать файл pillar , где указываются эти атрибуты.

/ SRV / столб / employee.sls:

employee:
  hostname_of_another_tier_minion: hostname.example.com

Затем вы можете сослаться на это в своем шаблоне jinja /srv/formulas/employee/templates/config.conf.jinja:

----------
hostname_of_another_tier_minion {{ pillar['employee']['hostname_of_another_tier_minion'] }}

Просто чтобы завершить, вы ссылаетесь на свой шаблон в /srv/employee/web.sls и /srv/employee/app.sls:

web-config-file:
  file.managed:
    - user: root
    - group: root
    - template: jinja
    - mode: '0644'
    - names:
      - /etc/<web-conf-dir>/web.conf:
        - source: salt://employee/templates/config.conf.jinja

Дайте мне знать, если у вас есть еще вопросы.

UPDATE:

Если имена хостов неизвестны, как вы сказали, вы можете сначала получить их с помощью grains , а затем поместить их в шаблон jinja, который будет отображаться в конфигурации на каждом сервере.

...