MongoDB
The MongoDB integration allows Plakar Control Plane to back up and restore the
contents of a MongoDB server. Plakar connects to a running server and drives the
MongoDB command line utilities, so a snapshot is a logical export of the server
rather than a copy of its data files, and a reachable server is required for
both backup and restore. The integration supports two protocols, mongodb and
mongodb+srv, matching the two MongoDB connection string formats. Both support
backup and restore.
Running MongoDB tasks on an edge
The MongoDB integration relies on mongosh, mongodump, and mongorestore,
which must be installed on the machine that executes the task. These utilities
are not included in the appliance, so MongoDB tasks run on an
edge rather than on the Control Plane.
Install the required MongoDB utilities on the edge host, then configure the task to run on that edge.
Running the edge in a container
When the edge runs as a container, build a
custom edge image from the official
MongoDB image. It already includes mongosh, mongodump, mongorestore and
the CA certificates the edge needs to reach the Control Plane over HTTPS:
FROM mongo:8
COPY --from=ghcr.io/plakarkorp/plakar-edge:<version> /bin/plakar-edge /bin/
ENV PLAKAR_EDGE_EXTRA_TAGS=mongodb
ENTRYPOINT ["/bin/plakar-edge"]Replace <version> with the edge version that matches your Control Plane, as
described in
Choosing the edge version.
Pin MongoDB tasks to the resulting edge with the Run on field when
scheduling them, or target it by the mongodb tag.
See selecting an edge.
Inventory Management
Currently no managed inventory has the capability of discovering MongoDB resources. You need to set up a self-managed inventory before adding a MongoDB resource.
Adding MongoDB as a resource
When using a self-managed inventory, you must register your resources manually or import them from a CSV file.
To add a MongoDB server as a resource, use Database as the class and leave the
subclass empty. For the endpoint, use the hostname or IP address of the MongoDB
server, or the SRV hostname of the deployment when using the mongodb+srv
protocol. See resources documentation for more information on
how to set up resources on a self-managed inventory.
1. mongodb protocol
The mongodb protocol connects to the server at the host and port given in the
resource endpoint and the app configuration. Use it for self-hosted servers and
for any deployment that is addressed by a fixed hostname or IP address.
Backup flow
flowchart TD
subgraph MongoDB["MongoDB Server"]
DB["Databases"]
end
subgraph Plakar["Plakar Control Plane"]
Source["MongoDB
Source app"]
Backup["Backup process
Encrypt & deduplicate"]
end
Store["Kloset Store"]
Source -->|"mongodump"| DB
DB --> Source
Source --> Backup
Backup --> Store
Restore flow
flowchart TD
Store["Kloset Store"]
subgraph Plakar["Plakar Control Plane"]
Destination["MongoDB
Destination app"]
Restore["Restore process"]
end
subgraph MongoDB["MongoDB Server"]
DB["Databases"]
end
Store --> Restore
Destination --> Restore
Restore -->|"mongorestore"| DB
Shared configuration
The following settings are available when configuring both source and
destination apps using the mongodb protocol.
- Auth Mechanism: The authentication mechanism used with the server, such as
SCRAM-SHA-256orMONGODB-X509. - Password: The password used to authenticate to MongoDB.
- Port: The MongoDB server port. Defaults to
27017. - Tls Ca Cert Data: The PEM content of a custom CA certificate used to verify the server’s certificate.
- Tls Client Cert Data: The PEM content of a client certificate for mTLS authentication.
- Tls Client Key Data: The PEM content of the client key for mTLS authentication. Must be set together with Tls Client Cert Data. Setting only one of them is an error.
- Use Tls: Use an encrypted TLS/SSL connection. Defaults to
true. - Username: The username used to authenticate to MongoDB.
2. mongodb+srv protocol
The mongodb+srv protocol resolves the server addresses from DNS SRV records
published for the hostname, rather than connecting to that hostname directly.
The port is also obtained from DNS, and any configured port is ignored. Use it
for deployments that publish their connection details through DNS, such as
MongoDB Atlas clusters. The resource endpoint is the SRV hostname of the
deployment.
Backup flow
flowchart TD
subgraph MongoDB["MongoDB Server"]
DB["Databases"]
end
subgraph Plakar["Plakar Control Plane"]
Source["MongoDB
Source app"]
Backup["Backup process
Encrypt & deduplicate"]
end
Store["Kloset Store"]
Source -->|"mongodump"| DB
DB --> Source
Source --> Backup
Backup --> Store
Restore flow
flowchart TD
Store["Kloset Store"]
subgraph Plakar["Plakar Control Plane"]
Destination["MongoDB
Destination app"]
Restore["Restore process"]
end
subgraph MongoDB["MongoDB Server"]
DB["Databases"]
end
Store --> Restore
Destination --> Restore
Restore -->|"mongorestore"| DB
Shared configuration
The following settings are available when configuring both source and
destination apps using the mongodb+srv protocol.
- Auth Mechanism: The authentication mechanism used with the server, such as
SCRAM-SHA-256orMONGODB-X509. - Password: The password used to authenticate to MongoDB.
- Port: Ignored when using this protocol. The port is obtained from DNS along with the server addresses.
- Tls Ca Cert Data: The PEM content of a custom CA certificate used to verify the server’s certificate.
- Tls Client Cert Data: The PEM content of a client certificate for mTLS authentication.
- Tls Client Key Data: The PEM content of the client key for mTLS authentication. Must be set together with Tls Client Cert Data. Setting only one of them is an error.
- Use Tls: Use an encrypted TLS/SSL connection. Defaults to
true. - Username: The username used to authenticate to MongoDB.
Restore behaviour
Restoring replaces existing data
Each collection in the snapshot is dropped from the target server before it is
restored. Restoring the admin database deletes all existing users and roles
on the server and replaces them with those from the snapshot.