Skip to content
This repository was archived by the owner on May 8, 2021. It is now read-only.

Commit 1883b4d

Browse files
authored
Merge pull request #10 from uniiverse/PLAT-183_mongo_ssl
PLAT-183 Add MongoDB SSL support
2 parents 9dcd647 + 849233a commit 1883b4d

File tree

2 files changed

+79
-4
lines changed

2 files changed

+79
-4
lines changed

mongodb/mongodb/mongodb.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ variable "mongodb_conf_engine" {}
66
variable "mongodb_conf_replsetname" {}
77
variable "mongodb_conf_oplogsizemb" {}
88
variable "mongodb_key_s3_object" {}
9+
variable "mongodb_ssl_server_key_s3_object" {}
10+
variable "mongodb_ssl_client_key_s3_object" {}
911
variable "opsmanager_key_s3_object" {}
1012
variable "mongodb_iam_name" {}
1113
variable "mongodb_sg_id" {}
@@ -34,6 +36,12 @@ variable "config_ebs" {
3436
variable "role_node" {
3537
default = "false"
3638
}
39+
variable "role_monitoring_agent" {
40+
default = "false"
41+
}
42+
variable "role_backup_agent" {
43+
default = "false"
44+
}
3745
variable "role_opsmanager" {
3846
default = "false"
3947
}
@@ -63,13 +71,17 @@ data "template_file" "user_data" {
6371
mongodb_conf_replsetname = "${var.mongodb_conf_replsetname}"
6472
mongodb_conf_oplogsizemb = "${var.mongodb_conf_oplogsizemb}"
6573
mongodb_key_s3_object = "${var.mongodb_key_s3_object}"
74+
mongodb_ssl_server_key_s3_object = "${var.mongodb_ssl_server_key_s3_object}"
75+
mongodb_ssl_client_key_s3_object = "${var.mongodb_ssl_client_key_s3_object}"
6676
opsmanager_key_s3_object = "${var.opsmanager_key_s3_object}"
6777
opsmanager_subdomain = "${var.opsmanager_subdomain}"
6878
hostname = "${var.route53_hostname}"
6979
aws_region = "${var.aws_region}"
7080
config_ephemeral = "${var.config_ephemeral}"
7181
config_ebs = "${var.config_ebs}"
7282
role_node = "${var.role_node}"
83+
role_monitoring_agent = "${var.role_monitoring_agent}"
84+
role_backup_agent = "${var.role_backup_agent}"
7385
role_opsmanager = "${var.role_opsmanager}"
7486
role_backup = "${var.role_backup}"
7587
mms_group_id = "${var.mms_group_id}"

mongodb/mongodb/templates/user-data.sh

Lines changed: 67 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -201,10 +201,77 @@ if [ "${role_node}" == "true" ]; then
201201
# Automation Agent won't start without proper hostname resolution, but Route53 takes a few mins to propagate.
202202
echo "`curl http://169.254.169.254/latest/meta-data/local-ipv4` ${hostname}" >> /etc/hosts
203203

204+
# setup ssl certificates for mongodb
205+
SSL_PATH=/etc/mongodb/ssl
206+
mkdir -p $SSL_PATH
207+
aws s3 --region=${aws_region} cp ${mongodb_ssl_server_key_s3_object} $SSL_PATH/mongodb_ssl_server.pem
208+
aws s3 --region=${aws_region} cp ${mongodb_ssl_client_key_s3_object} $SSL_PATH/mongodb_ssl_client.pem
209+
chmod 700 -R $SSL_PATH
210+
chown -R mongodb:mongodb $SSL_PATH
211+
204212
service mongodb-mms-automation-agent stop
205213
service mongodb-mms-automation-agent start
206214
fi
207215

216+
#
217+
# Monitoring Agent (connects to OpsManager)
218+
#
219+
if [ "${role_monitoring_agent}" == "true" ] ; then
220+
# install
221+
curl -k -OL http://${opsmanager_subdomain}:8080/download/agent/monitoring/mongodb-mms-monitoring-agent_5.4.5.370-1_amd64.deb
222+
DEBIAN_FRONTEND=noninteractive dpkg --install mongodb-mms-monitoring-agent_5.4.5.370-1_amd64.deb
223+
224+
# setup for opsmanager
225+
MONITORING_AGENT_CONFIG_FILE=/etc/mongodb-mms/monitoring-agent.config
226+
ESCAPED_OPSMANAGER_URL=`echo http://${opsmanager_subdomain}:8080 | awk '{gsub("/", "\\\/");print}'`
227+
sed -i "s/mmsBaseUrl=.*/mmsBaseUrl=$ESCAPED_OPSMANAGER_URL/" $MONITORING_AGENT_CONFIG_FILE
228+
sed -i "s/mmsApiKey=.*/mmsApiKey=${mms_api_key}/" $MONITORING_AGENT_CONFIG_FILE
229+
230+
# setup ssl certificates for monitoring agents
231+
SSL_PATH=/etc/mongodb-mms/ssl
232+
mkdir -p $SSL_PATH
233+
aws s3 --region=${aws_region} cp ${mongodb_ssl_server_key_s3_object} $SSL_PATH/mongodb_ssl_server.pem
234+
aws s3 --region=${aws_region} cp ${mongodb_ssl_client_key_s3_object} $SSL_PATH/mongodb_ssl_client.pem
235+
chmod 700 -R $SSL_PATH
236+
chown -R mongodb-mms-agent:mongodb-mms-agent $SSL_PATH
237+
echo "sslTrustedServerCertificates=$SSL_PATH/mongodb_ssl_server.pem" >> $MONITORING_AGENT_CONFIG_FILE
238+
echo "sslClientCertificate=$SSL_PATH/mongodb_ssl_client.pem" >> $MONITORING_AGENT_CONFIG_FILE
239+
echo "sslRequireValidServerCertificates=true" >> $MONITORING_AGENT_CONFIG_FILE
240+
241+
stop mongodb-mms-monitoring-agent
242+
start mongodb-mms-monitoring-agent
243+
fi
244+
245+
#
246+
# Backup Agent (connects to OpsManager)
247+
#
248+
if [ "${role_backup_agent}" == "true" ] ; then
249+
# install
250+
curl -k -OL http://${opsmanager_subdomain}:8080/download/agent/backup/mongodb-mms-backup-agent_5.0.7.494-1_amd64.deb
251+
DEBIAN_FRONTEND=noninteractive dpkg --install mongodb-mms-backup-agent_5.0.7.494-1_amd64.deb
252+
253+
# setup for opsmanager
254+
BACKUP_AGENT_CONFIG_FILE=/etc/mongodb-mms/backup-agent.config
255+
chmod 644 $BACKUP_AGENT_CONFIG_FILE
256+
chown mongodb:mongodb $BACKUP_AGENT_CONFIG_FILE
257+
sed -i "s/mmsApiKey=.*/mmsApiKey=${mms_api_key}/" $BACKUP_AGENT_CONFIG_FILE
258+
sed -i "s/mothership=.*/mothership=${opsmanager_subdomain}:8080/" $BACKUP_AGENT_CONFIG_FILE
259+
260+
# setup ssl certificates for monitoring agents
261+
SSL_PATH=/etc/mongodb-mms/ssl
262+
mkdir -p $SSL_PATH
263+
aws s3 --region=${aws_region} cp ${mongodb_ssl_server_key_s3_object} $SSL_PATH/mongodb_ssl_server.pem
264+
aws s3 --region=${aws_region} cp ${mongodb_ssl_client_key_s3_object} $SSL_PATH/mongodb_ssl_client.pem
265+
chmod 700 -R $SSL_PATH
266+
chown -R mongodb-mms-agent:mongodb-mms-agent $SSL_PATH
267+
echo "sslTrustedServerCertificates=$SSL_PATH/mongodb_ssl_server.pem" >> $BACKUP_AGENT_CONFIG_FILE
268+
echo "sslClientCertificate=$SSL_PATH/mongodb_ssl_client.pem" >> $BACKUP_AGENT_CONFIG_FILE
269+
echo "sslRequireValidServerCertificates=true" >> $BACKUP_AGENT_CONFIG_FILE
270+
271+
stop mongodb-mms-backup-agent
272+
start mongodb-mms-backup-agent
273+
fi
274+
208275
#
209276
# Backup Node (connects to OpsManager)
210277
#
@@ -242,8 +309,4 @@ EOF
242309
sed -i "s/\/etc\/mongod.conf/\/etc\/mongod-backup.conf/g" /etc/init/mongod-backup.conf
243310
sed -i "s/\/etc\/default\/mongod/\/etc\/default\/mongod-backup/g" /etc/init/mongod-backup.conf
244311
service mongod-backup start
245-
246-
curl -k -OL http://${opsmanager_subdomain}:8080/download/agent/backup/mongodb-mms-backup-agent_5.0.7.494-1_amd64.deb
247-
dpkg --install mongodb-mms-backup-agent_5.0.7.494-1_amd64.deb
248-
service mongodb-mms-backup-agent start
249312
fi

0 commit comments

Comments
 (0)