Назад | Перейти на главную страницу

Как мне создать шаблон SLS с помощью saltstack

Я пытаюсь проверить концепцию с помощью Mongodb (сегментирование), и мне хотелось бы запускать команду каждый раз, когда я запускаю новый кластер, без необходимости добавлять строки во все мои файлы sls. Моя текущая инициализация выглядит следующим образом:

монго Реплика4: 27000 /usr/lib/mongo/init_addshard.js:

cmd:

- run
- user: present

Слово Replica4 не является шаблонным идентификатором, хотелось бы знать, каким образом я смогу это сделать, чтобы при запуске нового кластера мне не пришлось бы ничего трогать в этом файле.

Взгляните на соляной столб. Но прежде чем вы это сделаете, ознакомьтесь с моим ужасным хаком ниже, все в одном файле init.sls:

{% for environment in 'test','production','development' %}

  /etc/nginx/sites-available/{{ environment }}:
    file:
    - managed
    - source: salt://templates/nginx.conf.template
    - template: jinja
    - defaults:
      environment: {{ environment }}

  /etc/ssl/private/{{ environment }}.key.pem:
    file:
    - managed
    - source: salt://certs/{{ environment }}.key.pem

  /etc/ssl/certs/{{ environment }}.cert.pem:
    file:
    - managed
    - source: salt://certs/{{ environment }}.cert.pem

{% endfor %}

Моя настраивает ssl-ключ для nginx, но вы просто вставляете туда Replica4, он будет расширен как Окружающая среда. Я просто добавляю среды по мере необходимости, и это все синхронизируется за меня.

Ваш может выглядеть примерно так:

 {% for environment in 'Replica4','Replica5', %}
    mongo {{ environment }}:27000 /usr/lib/mongo/init_addshard.js:

    cmd:

    - run
    - user: present

  {% endfor %}