使用ansible 批量操作mongodb(ansible 利用script模块执行脚本),ansiblemongodb
使用ansible 批量操作mongodb(ansible 利用script模块执行脚本),ansiblemongodb
目的:使用ansible 批量部署多台mongodb服务器
使用Linux终端命令 mongo实现mysql 的 -e参数的功能
1、mysql
[root@localhost ~]# mysql -e "show databases"
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
2、mongodb
[root@localhost ~]# mongo ai_xbot --eval "db.createUser({user:'xbot11',pwd:'123456qwe',roles:[{role:'readWrite',db:'ai_xbot'}]})"
Percona Server for MongoDB shell version: 3.2.18-3.9
connecting to: ai_xbot
Successfully added user: {
"user" : "xbot11",
"roles" : [
{
"role" : "readWrite",
"db" : "ai_xbot"
}
]
}
建议:
把需要执行的命令放入脚本执行,因为‘’ 和“” 可能会造成命令执行失败
执行:
[root@localhost hosts]# ansible -i mongonewhosts mongo -m shell -a "mongo ai_xbot --eval 'db.createCollection('ai_session_conversation')'" -o #执行失败
[root@localhost hosts]# vim script.sh
mongo ai_xbot --eval "db.createCollection('ai_session_conversation')"
mongo ai_xbot --eval "db.ai_session_conversation.ensureIndex({'session_id':1})"
mongo ai_xbot --eval "db.createCollection('ai_session_message')"
mongo ai_xbot --eval "db.ai_session_message.ensureIndex({'msg_id':1})"
执行
[root@localhost hosts]# ansible -i mongonewhosts mongo -m script-a " script.sh" -o
评论暂时关闭