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]