Module to provide MongoDB functionality to Salt
This module uses PyMongo, and accepts configuration details as parameters as well as configuration settings:
mongodb.host: 'localhost'
mongodb.port: 27017
mongodb.user: ''
mongodb.password: ''
This data can also be passed into pillar. Options passed into opts will overwrite options passed into pillar.
New in version 3006.0.
Create a collection in the specified database.
The name of the collection to create.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.collection_create mycollection <user> <password> <host> <port> <database>
New in version 3006.0.
Drop a collection in the specified database.
The name of the collection to drop.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.collection_drop mycollection <user> <password> <host> <port> <database>
New in version 3006.0.
List the collections available in the specified database.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.collections_list mycollection <user> <password> <host> <port> <database>
Checks if a database exists in MongoDB.
The name of the database to check for.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.db_exists <name> <user> <password> <host> <port>
List all MongoDB databases.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.db_list <user> <password> <host> <port>
Remove a MongoDB database.
The name of the database to remove.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.db_remove <name> <user> <password> <host> <port>
Find an object or list of objects in a collection
The collection to find the objects in.
The query to use when locating objects in the collection.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The database containing the collection, if not "admin".
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.find mycollection '[{"foo": "FOO", "bar": "BAR"}]' <user> <password> <host> <port> <database> <authdb> <ssl>
Insert an object or list of objects into a collection.
The documents to store in the collection.
The MongoDB collection to store the documents in.
The user to authenticate with, if necessary.
The password to authenticate with, if necessary.
The host running MongoDB.
The port MongoDB is listening on.
The database containing the collection, if not "admin".
The database to authenticate against, if not "admin".
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.insert '[{"foo": "FOO", "bar": "BAR"}, {"foo": "BAZ", "bar": "BAM"}]' mycollection <user> <password> <host> <port> <database>
Remove an object or list of objects from a collection
The collection to remove objects from based on the query.
Query to determine which objects to remove.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The database where the collection is.
The number of matches to remove from the collection.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.remove mycollection '[{"foo": "FOO", "bar": "BAR"}, {"foo": "BAZ", "bar": "BAM"}]' <user> <password> <host> <port> <database> <w> <authdb> <ssl>
Update a MongoDB document that matches the provided filter. http://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.collection.Collection.update_one
If the document is not found or too many documents match, then an error will be returned.
New in version 2016.11.0.
The objects to update in the collection, should be provided as a list.
The collection to insert the objects into.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The database containing the collection, if not "admin".
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.update_one '{"_id": "my_minion"} {"bar": "BAR"}' mycollection <user> <password> <host> <port> <database> <ssl>
Create a MongoDB user.
The name of the user to create.
The password for the user that is being created.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use when checking if the user exists. Default is admin
.
The MongoDB database to use for authentication. Default is None.
The roles that should be associated with the user. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.user_create <user_name> <user_password> <roles> <user> <password> <host> <port> <database> <authdb> <roles> <ssl>
Checks if a user exists in MongoDB.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use when checking if the user exists. Default is admin
.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.user_exists <name> <user> <password> <host> <port> <database> <authdb> <ssl>
Get single user from MongoDB.
The name of the user to find.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use when looking for the user. Default is admin
.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.user_find <name> <user> <password> <host> <port> <database> <authdb> <ssl>
Grant one or many roles to a MongoDB user.
The name of the user to grant roles to.
JSON list of roles to check either as strings, or JSON objects of
rolename and dbname to check. See user_roles_exists
or examples
below.
The database to grant roles on.
The user to authenticate with, if necessary.
The password to authenticate with, if necessary.
The host running MongoDB.
The port MongoDB is listening on.
The database to authenticate against, if not "admin".
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Examples:
salt '*' mongodb.user_grant_roles johndoe '["readWrite"]' dbname admin adminpwd localhost 27017
salt '*' mongodb.user_grant_roles janedoe '[{"role": "readWrite", "db": "dbname" }, {"role": "read", "db": "otherdb"}]' dbname admin adminpwd localhost 27017
List users of a MongoDB database.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use when listing users. Default is admin
.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.user_list <user> <password> <host> <port> <database> <authdb> <ssl>
Remove a MongoDB user.
The name of the user that should be removed.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.user_remove <name> <user> <password> <host> <port> <database> <authdb> <ssl>
Revoke one or many roles from a MongoDB user.
The name of the user to revoke roles from.
JSON list of roles to revoke either as strings, or JSON objects of
rolename and dbname to check. See user_roles_exists
or examples
below.
The database to revoke roles on.
The user to authenticate with, if necessary.
The password to authenticate with, if necessary.
The host running MongoDB.
The port MongoDB is listening on.
The database to authenticate against, if not "admin".
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Examples:
salt '*' mongodb.user_revoke_roles johndoe '["readWrite"]' dbname admin adminpwd localhost 27017
salt '*' mongodb.user_revoke_roles janedoe '[{"role": "readWrite", "db": "dbname" }, {"role": "read", "db": "otherdb"}]' dbname admin adminpwd localhost 27017
Checks if a user of a MongoDB database has specified roles.
The name of the user to check for roles.
JSON list of roles to check either as strings, or JSON objects of
rolename and dbname to check. Example: '["salt", "readWrite",
"dinner"]'
or [{"db": "some_database", "role": "dinner"}, {"db":
"another_db", "role": "kaiser"}]
The name of the database to check the user and roles against.
The user to authenticate with, if necessary.
The password to authenticate with, if necessary.
The host running MongoDB.
The port MongoDB is listening on.
The database to authenticate against, if not "admin".
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Examples:
salt '*' mongodb.user_roles_exists johndoe '["readWrite"]' dbname admin adminpwd localhost 27017
salt '*' mongodb.user_roles_exists johndoe '[{"role": "readWrite", "db": "dbname" }, {"role": "read", "db": "otherdb"}]' dbname admin adminpwd localhost 27017
Get MongoDB instance version.
The user to connect to MongoDB as. Default is None.
The password to use to connect to MongoDB as. Default is None.
The host where MongoDB is running. Default is None.
The host where MongoDB is running. Default is None.
The MongoDB database to use for authentication. Default is None.
Whether or not to connect to MongoDB over SSL. Default False
.
New in version 3008.0.
Whether or not to verify the server cert when connecting. Default True.
New in version 3008.0.
CLI Example:
salt '*' mongodb.version <user> <password> <host> <port> <database> <ssl>