如何使用saltstack从支柱创build盐?

让我们来看看今天的例子: https : //gist.github.com/Natim/6548009

我使用支柱来创build数据库和用户。 它可以在服务器上正常工作,但如果我需要同一台服务器上的两个angular色,则只考虑最后一个支柱。

我如何创造我的支柱和盐,为每个angular色创造一个盐?

我可以这样做:

{% for db in pillar['dbs'] %} postgresql_db_{{ db['postgresql_db_name'] }}: postgres_database.present: - name: {{ db['postgresql_db_name'] }} - owner: {{ db['postgresql_db_user'] }} - encoding: UTF8 - lc_ctype: en_US.UTF8 - lc_collate: en_US.UTF8 - template: template0 - runas: postgres - require: - service: postgresql - postgres_user: postgresql_user_{{ db['postgresql_db_user'] }} postgresql_user_{{ db['postgresql_db_user'] }}: postgres_user.present: - name: {{ db['postgresql_db_user'] }} - password: {{ db['postgresql_db_password'] }} - require: - service: postgresql {% endfor %} 

但是,那么如何用两个文件填充pillar['dbs']呢?

谢谢

  • 如果使用引导脚本安装,则升级SaltStack Master和Minion
  • 如何安装RVM和RUBY到salt-minion的特定用户
  • SaltStack:有没有办法在输出中只显示失败和警告?
  • SaltStack支柱包括在同一把钥匙下
  • 通过盐柱从主人部署SSH密钥
  • SaltStack:调用一个sls文件的单一状态
  • One Solution collect form web for “如何使用saltstack从支柱创build盐?”

    我终于设法做我想要的。

    这是我的解决scheme:

    支柱

     postgresql-database-novaauth: user: novaauth password: novaauth name: novaauth postgresql-database-peopleask: user: peopleask password: peopleask name: peopleask 

    他们可以在不同的文件。

    然后像这样创build你的盐:

     postgresql: pkg: - name: postgresql-9.3 - installed service.running: - enable: True {% for key in pillar.keys() if key.startswith('postgresql-database-') %} postgresql_db_{{ pillar[key]['name'] }}: postgres_database.present: - name: {{ pillar[key]['name'] }} - owner: {{ pillar[key]['user'] }} - encoding: UTF8 - lc_ctype: en_US.UTF8 - lc_collate: en_US.UTF8 - template: template0 - runas: postgres - require: - service: postgresql - postgres_user: postgresql_user_{{ pillar[key]['user'] }} postgresql_user_{{ pillar[key]['user'] }}: postgres_user.present: - name: {{ pillar[key]['user'] }} - password: {{ pillar[key]['password'] }} - require: - service: postgresql {% endfor %} postgresql.conf: file.append: - name: /etc/postgresql/9.3/main/postgresql.conf - text: "listen_addresses = '*'" - require: - pkg: postgresql - watch_in: - service: postgresql 

    重要的是这样的:

     {% for key in pillar.keys() if key.startswith('postgresql-database-') %} 

    这使您可以定义许多支柱,而不会超越其他支柱。

    有趣的文章: http : //dev.mlsdigital.net/posts/SaltStackBeyondJinjaStates/

    非常感谢brutasse的帮助。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.