Skip to content

Commit 3f121a6

Browse files
authored
Merge pull request #1163 from kaanklky/server-1691
[server-1691]
2 parents a4414c7 + eb1dc84 commit 3f121a6

File tree

3 files changed

+112
-7
lines changed

3 files changed

+112
-7
lines changed

bin/scripts/configure_mongodb.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ var fs = require("fs");
33

44
var myArgs = process.argv.slice(2);
55
if (myArgs.length && fs.existsSync(myArgs[0])) {
6-
// Load yaml file using yaml.load
6+
// Load yaml file using yaml.load
77
var ob = yaml.load(myArgs[0]);
88

99

bin/scripts/mongodb.init.logrotate.sh

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#!/bin/bash
2+
3+
#add mongod entry for logrotate daemon
4+
if [ -x "$(command -v logrotate)" ]; then
5+
#delete if any other logRotate directive exist and add logRotate to mongod.conf
6+
sed -i '/logRotate/d' /etc/mongod.conf
7+
sed -i 's#systemLog:#systemLog:\n logRotate: "reopen"#g' /etc/mongod.conf
8+
9+
if [ -f /etc/redhat-release ]; then
10+
cat <<'EOF' >> /etc/logrotate.d/mongod
11+
/var/log/mongodb/mongod.log {
12+
daily
13+
size 100M
14+
rotate 5
15+
missingok
16+
notifempty
17+
create 0600 mongod mongod
18+
sharedscripts
19+
postrotate
20+
/bin/kill -SIGUSR1 $(cat /var/lib/mongo/mongod.lock)
21+
endscript
22+
}
23+
EOF
24+
fi
25+
26+
if [ -f /etc/lsb-release ]; then
27+
cat <<'EOF' >> /etc/logrotate.d/mongod
28+
/var/log/mongodb/mongod.log {
29+
daily
30+
size 100M
31+
rotate 5
32+
missingok
33+
notifempty
34+
create 0600 mongodb mongodb
35+
sharedscripts
36+
postrotate
37+
/bin/kill -SIGUSR1 $(cat /var/lib/mongodb/mongod.lock)
38+
endscript
39+
}
40+
EOF
41+
fi
42+
43+
if [ -f /etc/redhat-release ]; then
44+
#mongodb might need to be started
45+
if grep -q -i "release 6" /etc/redhat-release ; then
46+
service mongod restart || echo "mongodb service does not exist"
47+
else
48+
systemctl restart mongod || echo "mongodb systemctl job does not exist"
49+
fi
50+
fi
51+
52+
if [ -f /etc/lsb-release ]; then
53+
if [[ "$(/sbin/init --version)" =~ upstart ]]; then
54+
restart mongod || echo "mongodb upstart job does not exist"
55+
else
56+
systemctl restart mongod || echo "mongodb systemctl job does not exist"
57+
fi
58+
fi
59+
else
60+
echo 'Command logrotate is not found, continuing without logrotate setup.'
61+
fi

bin/scripts/mongodb.install.sh

+50-6
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
44

55
if [ -f /etc/redhat-release ]; then
6-
#install latest mongodb
7-
6+
#install latest mongodb
7+
88
#select source based on release
99
if grep -q -i "release 6" /etc/redhat-release ; then
1010
echo "[mongodb-org-3.6]
@@ -22,15 +22,15 @@ enabled=1
2222
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" > /etc/yum.repos.d/mongodb-org-3.6.repo
2323
fi
2424
yum install -y nodejs mongodb-org
25-
25+
2626
#disable transparent-hugepages (requires reboot)
2727
cp -f "$DIR/disable-transparent-hugepages" /etc/init.d/disable-transparent-hugepages
2828
chmod 755 /etc/init.d/disable-transparent-hugepages
2929
chkconfig --add disable-transparent-hugepages
3030
fi
3131

3232
if [ -f /etc/lsb-release ]; then
33-
#install latest mongodb
33+
#install latest mongodb
3434
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
3535
UBUNTU_YEAR="$(lsb_release -sr | cut -d '.' -f 1)";
3636

@@ -46,17 +46,61 @@ if [ -f /etc/lsb-release ]; then
4646
apt-get update
4747
#install mongodb
4848
DEBIAN_FRONTEND="noninteractive" apt-get -y install mongodb-org || (echo "Failed to install mongodb." ; exit)
49-
49+
5050
#disable transparent-hugepages (requires reboot)
5151
cp -f "$DIR/disable-transparent-hugepages" /etc/init.d/disable-transparent-hugepages
5252
chmod 755 /etc/init.d/disable-transparent-hugepages
5353
update-rc.d disable-transparent-hugepages defaults
5454
fi
5555

56+
#add mongod entry for logrotate daemon
57+
if [ -x "$(command -v logrotate)" ]; then
58+
#delete if any other logRotate directive exist and add logRotate to mongod.conf
59+
sed -i '/logRotate/d' /etc/mongod.conf
60+
sed -i 's#systemLog:#systemLog:\n logRotate: "reopen"#g' /etc/mongod.conf
61+
62+
if [ -f /etc/redhat-release ]; then
63+
cat <<'EOF' >> /etc/logrotate.d/mongod
64+
/var/log/mongodb/mongod.log {
65+
daily
66+
size 100M
67+
rotate 5
68+
missingok
69+
notifempty
70+
create 0600 mongod mongod
71+
sharedscripts
72+
postrotate
73+
/bin/kill -SIGUSR1 $(cat /var/lib/mongo/mongod.lock)
74+
endscript
75+
}
76+
EOF
77+
fi
78+
79+
if [ -f /etc/lsb-release ]; then
80+
cat <<'EOF' >> /etc/logrotate.d/mongod
81+
/var/log/mongodb/mongod.log {
82+
daily
83+
size 100M
84+
rotate 5
85+
missingok
86+
notifempty
87+
create 0600 mongodb mongodb
88+
sharedscripts
89+
postrotate
90+
/bin/kill -SIGUSR1 $(cat /var/lib/mongodb/mongod.lock)
91+
endscript
92+
}
93+
EOF
94+
fi
95+
else
96+
echo 'Command logrotate is not found, continuing without logrotate setup.'
97+
fi
98+
99+
56100
#backup config and remove configuration to prevent duplicates
57101
cp /etc/mongod.conf /etc/mongod.conf.bak
58102
nodejs "$DIR/configure_mongodb.js" /etc/mongod.conf
59-
103+
60104
if [ -f /etc/redhat-release ]; then
61105
#mongodb might need to be started
62106
if grep -q -i "release 6" /etc/redhat-release ; then

0 commit comments

Comments
 (0)