Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

connections without certificates #607

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 16 additions & 15 deletions roles/mongodb_config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,27 @@ A simple role to aid in setting up a CSRS Config Server Replicaset for a MongoDB
Role Variables
--------------

* `config_port`: The port used by the mongos process. Default 27019.
* `mongod_service`: The name of the mongod service. Default mongod.
* `mongodb_user`: The Linux OS user for MongoDB. Default mongod.
* `mongodb_group`: The Linux OS user group for MongoDB. Default mongod.
* `pid_file`: The pid file for mongos. Default /run/mongodb/mongos.pid.
* `log_path`: Path of the log file. Default /var/log/mongodb/mongod.log.
* `bind_ip`: The IP address mongod will bind to. Default 0.0.0.0.
* `bind_ip_all`: Have mongod bind to all IP addresses instead of specifying `bind_ip`. Default false.
* `config_repl_set_name`: The replicaset name for the config servers. Default cfg.
* `authorization`: Enable authorization. Default enabled.
* `config_port`: The port used by the mongos process. Default `27019`.
* `mongod_service`: The name of the mongod service. Default `mongod`.
* `mongodb_user`: The Linux OS user for MongoDB. Default `mongod`.
* `mongodb_group`: The Linux OS user group for MongoDB. Default `mongod`.
* `pid_file`: The pid file for mongos. Default `/run/mongodb/mongos.pid`.
* `log_path`: Path of the log file. Default `/var/log/mongodb/mongod.log`.
* `bind_ip`: The IP address mongod will bind to. Default `0.0.0.0`.
* `bind_ip_all`: Have mongod bind to all IP addresses instead of specifying `bind_ip`. Default `false`.
* `config_repl_set_name`: The replicaset name for the config servers. Default `cfg`.
* `authorization`: Enable authorization. Default `enabled`.
* `openssl_keyfile_content`: The kexfile content that MongoDB uses to authenticate within a replicaset. Generate with cmd: openssl rand -base64 756.
* `openssl_keyfile_path`: Put the openssl_keyfile at this path. Default: /etc/keyfile
* `mongod_package`: The name of the mongod installation package. Default mongodb-org-server.
replicaset: When enabled add a replication section to the configuration. Default true.
* `openssl_keyfile_path`: Put the openssl_keyfile at this path. Default: `/etc/keyfile`.
* `mongod_package`: The name of the mongod installation package. Default `mongodb-org-server`.
replicaset: When enabled add a replication section to the configuration. Default `true`.
* `net_compressors`: If this is set, this sets `net.compression.compressors` in mongod.conf.
* `mongod_config_template`: If defined allows to override path to mongod config template with custom configuration. Default "mongod.conf.j2"
* `mongod_config_template`: If defined allows to override path to mongod config template with custom configuration. Default `mongod.conf.j2`.
* `skip_restart`: If set to `true` will skip restarting mongod service when config file or the keyfile content changes. Default `true`.
* `db_path`: Path to database data location. Default `/var/lib/mongodb` on Debian based distributions, `/var/lib/mongo` for others.
* `mongodb_use_tls`: Wether to use tls. Default false.
* `mongodb_use_tls`: Whether to use tls. Default `false`.
* `mongodb_disabled_tls_protocols`: The tls protocols to be disabled. Leave blank to let MongoDB decide which protocols to allow according to the ones available on the system; check the [official docs](https://www.mongodb.com/docs/v6.0/reference/configuration-options/#mongodb-setting-net.tls.disabledProtocols) for details. Default "".
* `mongodb_allow_connections_without_certificates`: When enabled allows to bypass the certificate validation for clients that do not present a certificate, if a certificate is provided it _must_ be valid. Default `false`.
* `mongodb_certificate_key_file`: Path to the PEM-file containing the certficate and private key.
* `mongodb_certificate_ca_file`: Path to the CA-file.

Expand Down
1 change: 1 addition & 0 deletions roles/mongodb_config/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,4 @@ skip_restart: true
db_path: "{{ '/var/lib/mongodb' if ansible_os_family == 'Debian' else '/var/lib/mongo' if ansible_os_family == 'RedHat' else '/var/lib/mongo' }}"
mongodb_use_tls: false
mongodb_disabled_tls_protocols: ""
mongodb_allow_connections_without_certificates: false
3 changes: 3 additions & 0 deletions roles/mongodb_config/templates/configsrv.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ net:
{% if mongodb_disabled_tls_protocols != "" %}
disabledProtocols: {{ mongodb_disabled_tls_protocols }}
{% endif %}
{% if mongodb_allow_connections_without_certificates %}
allowConnectionsWithoutCertificates: true
{% endif %}
{% endif %}

{% if authorization == "enabled" %}
Expand Down
35 changes: 18 additions & 17 deletions roles/mongodb_mongod/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,29 @@ A simple role to aid in the setup of a MongoDB replicaset.
Role Variables
--------------

* `mongod_port`: The port used by the mongod process. Default 27017.
* `mongod_service`: The name of the mongod service. Default mongod.
* `mongodb_user`: The Linux OS user for MongoDB. Default mongod.
* `mongodb_group`: The Linux OS user group for MongoDB. Default mongod.
* `bind_ip`: The IP address mongod will bind to. Default 0.0.0.0.
* `bind_ip_all`: Have mongod bind to all IP addresses instead of specifying `bind_ip`. Default false.
* `log_path`: Path of the log file. Default: /var/log/mongodb/mongod.log.
* `repl_set_name`: The name of the replicaset the member will participate in. Default rs0.
* `authorization`: Enable authorization. Default enabled.
* `mongod_port`: The port used by the mongod process. Default `27017`.
* `mongod_service`: The name of the mongod service. Default `mongod`.
* `mongodb_user`: The Linux OS user for MongoDB. Default `mongod`.
* `mongodb_group`: The Linux OS user group for MongoDB. Default `mongod`.
* `bind_ip`: The IP address mongod will bind to. Default `0.0.0.0`.
* `bind_ip_all`: Have mongod bind to all IP addresses instead of specifying `bind_ip`. Default `false`.
* `log_path`: Path of the log file. Default: `/var/log/mongodb/mongod.log`.
* `repl_set_name`: The name of the replicaset the member will participate in. Default `rs0`.
* `authorization`: Enable authorization. Default `enabled`.
* `openssl_keyfile_content`: The keyfile content that MongoDB uses to authenticate within a replicaset. Generate with cmd: openssl rand -base64 756.
* `openssl_keyfile_path`: Put the openssl_keyfile at this path. Default: /etc/keyfile
* `mongodb_admin_user`: MongoDB admin username. Default admin.
* `mongodb_admin_pwd`: MongoDB admin password. Default admin.
* `mongod_package`: The mongod package to install. Default mongodb-org-server.
* `replicaset`: When enabled add a replication section to the configuration. Default true.
* `sharding`: If this replicaset member will form part of a sharded cluster. Default false.
* `openssl_keyfile_path`: Put the openssl_keyfile at this path. Default: `/etc/keyfile`.
* `mongodb_admin_user`: MongoDB admin username. Default `admin`.
* `mongodb_admin_pwd`: MongoDB admin password. Default `admin`.
* `mongod_package`: The mongod package to install. Default `mongodb-org-server`.
* `replicaset`: When enabled add a replication section to the configuration. Default `true`.
* `sharding`: If this replicaset member will form part of a sharded cluster. Default `false`.
* `net_compressors`: If this is set, this sets `net.compression.compressors` in mongod.conf.
* `mongod_config_template`: If defined allows to override path to mongod config template with custom configuration. Default "mongod.conf.j2"
* `mongod_config_template`: If defined allows to override path to mongod config template with custom configuration. Default `mongod.conf.j2`.
* `skip_restart`: If set to `true` will skip restarting mongod service when config file or the keyfile content changes. Default `true`.
* `db_path`: Path to database data location. Default `/var/lib/mongodb` on Debian based distributions, `/var/lib/mongo` for others.
* `mongodb_use_tls`: Wether to use tls. Default false.
* `mongodb_use_tls`: Whether to use tls. Default `false`.
* `mongodb_disabled_tls_protocols`: The tls protocols to be disabled. Leave blank to let MongoDB decide which protocols to allow according to the ones available on the system; check the [official docs](https://www.mongodb.com/docs/v6.0/reference/configuration-options/#mongodb-setting-net.tls.disabledProtocols) for details. Default "".
* `mongodb_allow_connections_without_certificates`: When enabled allows to bypass the certificate validation for clients that do not present a certificate, if a certificate is provided it _must_ be valid. Default `false`.
* `mongodb_certificate_key_file`: Path to the PEM-file containing the certficate and private key.
* `mongodb_certificate_ca_file`: Path to the CA-file.

Expand Down
1 change: 1 addition & 0 deletions roles/mongodb_mongod/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@ skip_restart: true
db_path: "{{ '/var/lib/mongodb' if ansible_os_family == 'Debian' else '/var/lib/mongo' if ansible_os_family == 'RedHat' else '/var/lib/mongo' }}"
mongodb_use_tls: false
mongodb_disabled_tls_protocols: ""
mongodb_allow_connections_without_certificates: false
3 changes: 3 additions & 0 deletions roles/mongodb_mongod/templates/mongod.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ net:
{% if mongodb_disabled_tls_protocols != "" %}
disabledProtocols: {{ mongodb_disabled_tls_protocols }}
{% endif %}
{% if mongodb_allow_connections_without_certificates %}
allowConnectionsWithoutCertificates: true
{% endif %}
{% endif %}

{% if authorization == "enabled" %}
Expand Down
29 changes: 15 additions & 14 deletions roles/mongodb_mongos/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,26 @@ good idea to mention in this section that the boto package is required.
Role Variables
--------------

* `mongos_port`: The port used by the mongos process. Default 27017.
* `mongos_service`: The name of the mongos service. Default mongos.
* `mongodb_user`: The Linux OS user for MongoDB. Default mongod.
* `mongodb_group`: The Linux OS user group for MongoDB. Default mongod.
* `pid_file`: The pid file for mongos. Default /run/mongodb/mongos.pid.
* `bind_ip`: The IP address mongos will bind to. Default 0.0.0.0.
* `bind_ip_all`: Have mongos bind to all IP addresses instead of specifying `bind_ip`. Default false.
* `log_path`: Path of the log file. Default: /var/log/mongodb/mongos.log.
* `mypy`: Python interpretor. Default python
* `mongos_package`: The name of the mongos installation package. Default mongodb-org-mongos.
* `config_repl_set_name`: The name of the config server replicaset. Default cfg.
* `mongos_port`: The port used by the mongos process. Default `27017`.
* `mongos_service`: The name of the mongos service. Default `mongos`.
* `mongodb_user`: The Linux OS user for MongoDB. Default `mongod`.
* `mongodb_group`: The Linux OS user group for MongoDB. Default `mongod`.
* `pid_file`: The pid file for mongos. Default `/run/mongodb/mongos.pid`.
* `bind_ip`: The IP address mongos will bind to. Default `0.0.0.0`.
* `bind_ip_all`: Have mongos bind to all IP addresses instead of specifying `bind_ip`. Default `false`.
* `log_path`: Path of the log file. Default: `/var/log/mongodb/mongos.log`.
* `mypy`: Python interpretor. Default `python`.
* `mongos_package`: The name of the mongos installation package. Default `mongodb-org-mongos`.
* `config_repl_set_name`: The name of the config server replicaset. Default `cfg`.
* `config_servers`: "config1:27019, config2:27019, config3:27019"
* `openssl_keyfile_content`: The kexfile content that MongoDB uses to authenticate within a replicaset. Generate with cmd: openssl rand -base64 756.
* `openssl_keyfile_path`: Put the openssl_keyfile at this path. Default: /etc/keyfile
* `openssl_keyfile_path`: Put the openssl_keyfile at this path. Default: `/etc/keyfile`.
* `net_compressors`: If this is set, this sets `net.compression.compressors` in mongos.conf.
* `mongos_config_template`: If defined allows to override path to mongod config template with custom configuration. Default "mongos.conf.j2"
* `mongos_config_template`: If defined allows to override path to mongod config template with custom configuration. Default `mongos.conf.j2`.
* `skip_restart`: If set to `true` will skip restarting mongos service when config file or the keyfile content changes. Default `true`.
* `mongodb_use_tls`: Wether to use tls. Default false.
* `mongodb_use_tls`: Whether to use tls. Default `false`.
* `mongodb_disabled_tls_protocols`: The tls protocols to be disabled. Leave blank to let MongoDB decide which protocols to allow according to the ones available on the system; check the [official docs](https://www.mongodb.com/docs/v6.0/reference/configuration-options/#mongodb-setting-net.tls.disabledProtocols) for details. Default "".
* `mongodb_allow_connections_without_certificates`: When enabled allows to bypass the certificate validation for clients that do not present a certificate, if a certificate is provided it _must_ be valid. Default `false`.
* `mongodb_certificate_key_file`: Path to the PEM-file containing the certficate and private key.
* `mongodb_certificate_ca_file`: Path to the CA-file.

Expand Down
1 change: 1 addition & 0 deletions roles/mongodb_mongos/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,4 @@ mongos_config_template: "mongos.conf.j2"
skip_restart: true
mongodb_use_tls: false
mongodb_disabled_tls_protocols: ""
mongodb_allow_connections_without_certificates: false
3 changes: 3 additions & 0 deletions roles/mongodb_mongos/templates/mongos.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ net:
{% if mongodb_disabled_tls_protocols != "" %}
disabledProtocols: {{ mongodb_disabled_tls_protocols }}
{% endif %}
{% if mongodb_allow_connections_without_certificates %}
allowConnectionsWithoutCertificates: true
{% endif %}
{% endif %}
sharding:
configDB: "{{ config_repl_set_name }}/{{ config_servers }}"
Expand Down
Loading