zzbb 发表于 2018-7-31 09:09:18

saltstack 配置mongodb作为后台存储pillar,自动化安装mongodb,创建mongodb用户

#### sls 文件编写  
$ cat mongo/init.sls
  
{% if 'mongodb-client' in pillar['subsystem'] and pillar['subsystem']['mongodb-client']['status'] == 'installed' %}
  
{% for mongo in pillar['application']['mongodb-instances'] %}
  
{% for db in mongo['dbs'] %}
  
{% if 'delete' in db and db['delete'] %}
  
Drop mongo database {{ db['dbname'] }}:
  
cmd.script:
  
    - name: salt://application/mongo/mongo_drop.sh
  
    - cwd: /root
  
    - stateful: True
  
    - template: jinja
  
    - default:
  
      dbname: {{ db['dbname'] }}
  
      adminuser: {{ mongo['adminuser'] }}
  
      adminpasswd: {{ mongo['adminpasswd'] }}
  
      host: {{ mongo['ip'] if 'ip' in mongo else '127.0.0.1' }}
  
      port: {{ mongo['port'] if 'port' in mongo else '27017' }}
  
{% else %}
  
Create mongo database{{ db['dbname'] }}:
  
cmd.script:
  
    - name: salt://application/mongo/mongo_create.sh
  
    - cwd: /root
  
    - stateful: True
  
    - template: jinja
  
    - default:
  
      dbname: {{ db['dbname'] }}
  
      adminuser: {{ mongo['adminuser'] }}
  
      adminpasswd: {{ mongo['adminpasswd'] }}
  
      host: {{ mongo['ip'] if 'ip' in mongo else '127.0.0.1' }}
  
      port: {{ mongo['port'] if 'port' in mongo else '27017' }}
  
{% if 'users' in db %}
  
{% for user in db['users'] %}
  
{% if 'delete' in user and user['delete'] %}
  
Drop user {{ user['username'] }} on {{ db['dbname'] }}:
  
cmd.script:
  
    - name: salt://application/mongo/mongo_user_drop.sh
  
    - cwd: /root
  
    - stateful: True
  
    - template: jinja
  
    - default:
  
      username: {{ user['username'] }}
  
      adminuser: {{ mongo['adminuser'] }}
  
      adminpasswd: {{ mongo['adminpasswd'] }}
  
      host: {{ mongo['ip'] if 'ip' in mongo else '127.0.0.1' }}
  
      port: {{ mongo['port'] if 'port' in mongo else '27017' }}
  
      dbname: {{ db['dbname'] }}
  
{% else %}
  
Create user {{ user['username'] }} on {{ db['dbname'] }}:
  
cmd.script:
  
    - name: salt://application/mongo/mongo_user_create.sh
  
    - cwd: /root
  
    - stateful: True
  
    - template: jinja
  
    - default:
  
      username: {{ user['username'] }}
  
      mongo_password: {{ user['password'] }}
  
      privileges: {{ user['privileges'] if 'privileges' in user else ['read'] | json() }}
  
      adminuser: {{ mongo['adminuser']}}
  
      adminpasswd: {{ mongo['adminpasswd']}}
  
      host: {{ mongo['ip'] if 'ip' in mongo else '127.0.0.1'}}
  
      port: {{ mongo['port'] if 'port' in mongo else '27017'}}
  
      dbname: {{ db['dbname']}}
  
{% endif %} # delete in user
  
{% endfor %} # user in db
  
{% endif %} # user in db
  
{% endif %}
  
{% endfor %}
  
{% endfor %}
  
{% endif %}
页: [1]
查看完整版本: saltstack 配置mongodb作为后台存储pillar,自动化安装mongodb,创建mongodb用户