使用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


 

 

相关内容

    暂无相关文章