Mongodb

我將如何使用 saltstack 模板化 SLS

  • November 1, 2013

我正在嘗試使用 Mongodb(分片)進行概念驗證,並且我希望每次啟動新集群時都執行一個命令,而不必在我的所有 sls 文件中添加行。我目前的初始化如下:

mongo Replica4 :27000 /usr/lib/mongo/init_addshard.js:

命令:

- run
- user: present

Replica4 這個詞不是模板化的 id,我想知道一種我能夠做到的方式,這樣當我啟動一個新集群時,我就不必觸及這個文件中的任何內容。

看看鹽柱。但在你這樣做之前,看看我下面的可怕黑客,所有這些都在一個 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 %}

我正在為 nginx 配置 ssl 密鑰,但您只需將 Replica4 放在那裡,它將被擴展為environment。我只是根據需要添加環境,它會為我同步所有環境。

你的可能看起來像:

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

   cmd:

   - run
   - user: present

 {% endfor %}

引用自:https://serverfault.com/questions/550009