Skip to content

Commit 2102270

Browse files
committed
generic salt script to enable authentication
0 parents  commit 2102270

File tree

1 file changed

+137
-0
lines changed

1 file changed

+137
-0
lines changed

enable-mongoAuthentication.sh

+137
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
#!/bin/bash
2+
3+
# Title: enable-mongoAuthentication
4+
# Enabling mongo authentication via salt in less than 5 mintues.
5+
# Author: Kelly Collard
6+
7+
8+
# Notes: To enable mongo authentication.
9+
# This script assumes that all mongo conf files are in place and are in the new yaml format for 3.0+
10+
# and that the security & auth section is commented out of each mongo conf file.
11+
#
12+
#
13+
14+
15+
# Need to give an environment argument for the script to work, load, beta, se, sw
16+
EXPECTED_ARGS=1
17+
E_BADARGS=65
18+
19+
if [ $# -ne $EXPECTED_ARGS ]; then
20+
{
21+
echo "Usage: enable-mongoAuthentication [environment]"
22+
echo "example: enable-mongoAuthentication staging"
23+
exit $E_BADARGS
24+
}
25+
fi
26+
27+
ENV=$1
28+
29+
30+
31+
32+
echo "*****************************************************************************************************************"
33+
echo " WARNING! WARNING!"
34+
echo ""
35+
read -r -p "Do you wish to proceed with enabling authentication for real? This will bring down the platform! [y/N] " response
36+
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]
37+
then
38+
39+
export PS4='+(${BASH_SOURCE}:${LINENO}): '
40+
41+
42+
##################################################################################################
43+
#
44+
# Stop All Mongo Processes
45+
#
46+
# This section will stop all mongos,mongodc,and mongod processes.
47+
# To make sure they are stopped it also issues a 'kill -9' to make sure.
48+
#
49+
#################################################################################################
50+
51+
echo " "
52+
echo " "
53+
echo "Stopping All Mongo Processes "
54+
echo " "
55+
56+
set -x
57+
salt -v -C "tp-load-mongo[1-5]* or ( tp-load-*app* ) or ( tp-load-listener* ) or ( tp-load-*sso* ) " cmd.run '/etc/init.d/mongos stop'
58+
59+
salt -v -C "tp-load-mongo[1-5]*" cmd.run '/etc/init.d/mongod stop'
60+
61+
salt -v -C "tp-load-mongocfg*" cmd.run '/etc/init.d/mongodc stop'
62+
63+
salt -v -C "G@CONFIG_PROFILE:${ENV} and ( G@roles:app or G@roles:webapp or G@roles:sso or G@roles:mongodb-listener or G@roles:standalone or G@roles:mongodb or G@roles:mongodb-config-server )" cmd.run 'pgrep -u mongod | xargs kill -9'
64+
65+
set +x
66+
67+
echo " "
68+
echo " "
69+
echo " "
70+
############################################################################################################################
71+
#
72+
# Enable Mongo Authentication
73+
#
74+
# All authentication is commented out of the mongod.conf files. Using sed to uncomment and enable auth.
75+
# After modifying the conf files then start mongo
76+
#
77+
# Example of /etc/mongod.conf:
78+
#
79+
#
80+
#
81+
# processManagement:
82+
# fork: true
83+
# pidFilePath: /var/run/mongodb/mongod.pid
84+
#
85+
# storage:
86+
# dbPath: "/var/lib/mongo/data"
87+
# engine: mmapv1
88+
#
89+
# systemLog:
90+
# destination: file
91+
# path: "/var/log/mongo/mongod.log"
92+
# logAppend: true
93+
# verbosity: 0
94+
# logRotate: rename
95+
#
96+
# net:
97+
# port: 10010
98+
#
99+
# #security:
100+
# #authorization: enabled
101+
# #clusterAuthMode: keyFile
102+
# #keyFile: /var/lib/mongo/mongodb-keyfile
103+
#
104+
# replication:
105+
# replSetName: rs0
106+
#
107+
#
108+
#
109+
#
110+
##########################################################################################################################
111+
112+
echo " "
113+
echo " "
114+
echo "Enabling Mongo Authentication"
115+
echo " "
116+
117+
set -x
118+
salt -v -C "G@CONFIG_PROFILE:${ENV} and ( G@roles:app or G@roles:webapp or G@roles:sso or G@roles:mongodb-listener or G@roles:standalone or G@roles:mongodb )" cmd.run 'cp /etc/mongos.conf /etc/mongos.conf.OLD && sed -i -e 's/#//g' /etc/mongos.conf'
119+
120+
salt -v -C "tp-load-mongo[1-5]*" cmd.run 'cp /etc/mongod.conf /etc/mongod.conf.OLD && sed -i -e 's/#//g' /etc/mongod.conf'
121+
122+
salt -v -C "tp-load-mongocfg*" cmd.run 'cp /etc/mongodc.conf /etc/mongodc.conf.OLD && sed -i -e 's/#//g' /etc/mongodc.conf'
123+
124+
salt -v -C "tp-load-mongo[1-5]*" cmd.run '/etc/init.d/mongod start' && sleep 5
125+
126+
salt -v -C "tp-load-mongocfg*" cmd.run '/etc/init.d/mongodc start' && sleep 5
127+
128+
salt -v -C "G@CONFIG_PROFILE:${ENV} and ( G@roles:app or G@roles:webapp or G@roles:sso or G@roles:mongodb-listener or G@roles:standalone or G@roles:mongodb )" cmd.run '/etc/init.d/mongos start'
129+
130+
set +x
131+
132+
echo " "
133+
echo " "
134+
echo " "
135+
136+
fi
137+
exit

0 commit comments

Comments
 (0)