Разверните некоторые файлы, используя колонны и дзиндзя - PullRequest
0 голосов
/ 11 октября 2018

Я бы хотел развернуть множество файлов на моем прокси-сервере nginx с помощью Saltstack.Мой прокси-сервер будет содержать файл конфигурации в /etc/nginx/sites-available/[WEBSERVER] для каждого имеющегося у меня веб-сервера.

Поэтому во всех моих файлах столбов для каждого миньона с зерном role:webserver я помещаю следующее:

proxy:
  hostname: NAME OF THE WEBSERVER
  dns_suffixe: TEST1.FR

На моем втором миньоне у меня тоже самое с другим значением и т. Д.

Итак, в формуле я использую этот код для соответствия значению столба:

{% for proxy, args in salt['pillar.get']('proxy').iteritems() %}

/etc/nginx/sites-available/{{hostname}}:
  file.managed:
    - source: salt://proxy-ext/files/default.jinja
    - target: /etc/nginx/sites-available/{{hostname}}
    - template: jinja
    - user: root
    - group: root
    - mode: 640
{% endfor %}

Я управляю файлом default.jinja с той же переменной {{hostname}} и {{dns_suffixe}.

Но это не работает.Я все еще новичок в Солт, и я не уверен, что это лучший способ сделать то, что я хочу.Можно ли вернуть все значения столбцов, которые я написал в файлах столбцов моих веб-серверов?Даже если ключ: значение всегда следующее?

proxy:
  hostname: NAME

Я использую Salt 2017. Мои top.sls файлы хорошо определены.Каждый ответ приветствуется!Я полностью застрял.Справка: 3

РЕДАКТИРОВАТЬ

Я постараюсь перефразировать по-другому, чтобы быть более понятным.Цель этой манипуляции - автоматизировать загрузку многих веб-сайтов.Итак, у меня есть один миньон с прокси nginx.Когда я запускаю свою формулу прокси, я хочу, чтобы Соль анализировал моих миньонов и соответствовал зернам веб-сервера.На всех моих веб-серверах есть формула / столб для развертывания приложения, и на этом же столбце у меня есть proxy.hostname:value и proxy.cert:value, как определено выше.С разными значениями для всех опор веб-сервера.

Поэтому, когда я запускаю свою формулу прокси, она совпадает с моими миньонами, и я хочу получить обратно каждое значение в proxy.hostname:value и другое для развертывания хорошей конфигурациифайл на моем прокси-сервере nginx для всех моих веб-серверов.

(мой default.jinja - это шаблон файла конфигурации nginx для загрузки веб-сайта)

Так что можно вернуть эти значения с помощьюсвоего рода петля дзиндзя на всех этих столбах значение?Как то, что я написал выше?Я не совсем уверен в методе, который я пытался использовать.Извините за недоразумение, надеюсь, теперь оно стало понятнее.

1 Ответ

0 голосов
/ 23 октября 2018

Вы хотите использовать параметр контекста для file.managed, а затем вы можете получить доступ к переменным в шаблоне

{% for proxy, args in salt['pillar.get']('proxy').items() %}

/etc/nginx/sites-available/{{hostname}}:
  file.managed:
    - source: salt://proxy-ext/files/default.jinja
    - target: /etc/nginx/sites-available/{{hostname}}
    - template: jinja
    - context:
        hostname: {{ args['hostname'] }}
        dns_suffix: {{ args['dns_suffixe'] }}
    - user: root
    - group: root
    - mode: 640
{% endfor %}

После этого вы можете ссылаться на имя хоста и dns_suffix в шаблоне, как если бы они были определенына местном уровне.

...