3
3
DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd ) "
4
4
5
5
if [ -f /etc/redhat-release ]; then
6
- # install latest mongodb
7
-
6
+ # install latest mongodb
7
+
8
8
# select source based on release
9
9
if grep -q -i " release 6" /etc/redhat-release ; then
10
10
echo " [mongodb-org-3.6]
@@ -22,15 +22,15 @@ enabled=1
22
22
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" > /etc/yum.repos.d/mongodb-org-3.6.repo
23
23
fi
24
24
yum install -y nodejs mongodb-org
25
-
25
+
26
26
# disable transparent-hugepages (requires reboot)
27
27
cp -f " $DIR /disable-transparent-hugepages" /etc/init.d/disable-transparent-hugepages
28
28
chmod 755 /etc/init.d/disable-transparent-hugepages
29
29
chkconfig --add disable-transparent-hugepages
30
30
fi
31
31
32
32
if [ -f /etc/lsb-release ]; then
33
- # install latest mongodb
33
+ # install latest mongodb
34
34
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
35
35
UBUNTU_YEAR=" $( lsb_release -sr | cut -d ' .' -f 1) " ;
36
36
@@ -46,17 +46,61 @@ if [ -f /etc/lsb-release ]; then
46
46
apt-get update
47
47
# install mongodb
48
48
DEBIAN_FRONTEND=" noninteractive" apt-get -y install mongodb-org || (echo " Failed to install mongodb." ; exit)
49
-
49
+
50
50
# disable transparent-hugepages (requires reboot)
51
51
cp -f " $DIR /disable-transparent-hugepages" /etc/init.d/disable-transparent-hugepages
52
52
chmod 755 /etc/init.d/disable-transparent-hugepages
53
53
update-rc.d disable-transparent-hugepages defaults
54
54
fi
55
55
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
+
56
100
# backup config and remove configuration to prevent duplicates
57
101
cp /etc/mongod.conf /etc/mongod.conf.bak
58
102
nodejs " $DIR /configure_mongodb.js" /etc/mongod.conf
59
-
103
+
60
104
if [ -f /etc/redhat-release ]; then
61
105
# mongodb might need to be started
62
106
if grep -q -i " release 6" /etc/redhat-release ; then
0 commit comments