update the installation scripts and systemd configuration files [release 3.2.3-2mamba;Sat Feb 27 2016]

This commit is contained in:
Davide Madrisan 2024-01-06 07:13:09 +01:00
parent 8fc42eb88c
commit 84341b88b2
9 changed files with 351 additions and 0 deletions

View File

@ -1,2 +1,8 @@
# mongodb
MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling.
MongoDB obviates the need for an Object Relational Mapping (ORM) to facilitate development.
MongoDB stores documents in collections. Collections are analogous to tables in relational databases.
Unlike a table, however, a collection does not require its documents to have the same schema.
In MongoDB, documents stored in a collection must have a unique _id field that acts as a primary key.

61
mongod.conf Normal file
View File

@ -0,0 +1,61 @@
# for documentation of all options, see:
# https://docs.mongodb.org/manual/reference/configuration-options/
# Where to write logging data
systemLog:
# The default log message verbosity level for components (0-5)
verbosity: 0
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
logRotate: reopen
# Where and how to store data
storage:
# Directory for datafiles (defaults to /data/db/)
dbPath: /var/lib/mongodb
journal:
# Enable/Disable journaling
enabled: true
# The storage engine for the mongod database (mmapv1|wiredTiger)
# (wiredTiger by default - works for 64 bit only)
engine: mmapv1
# mmapv1:
# wiredTiger:
# How the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
# network interfaces
net:
port: 27017
# Listen to local interface only, comment to listen on all interfaces
bindIp: 127.0.0.1,::1
ipv6: true
unixDomainSocket:
# Enable/disable listening on the UNIX domain socket
enabled: true
# Alternative directory for UNIX domain sockets (defaults to /tmp)
pathPrefix: /var/run/mongodb
#security:
# Private key for cluster authentication
#keyFile: <string>
# Run with/without security (enabled|disabled, disabled by default)
#authorization
#operationProfiling:
#replication:
#sharding:

15
mongod.service Normal file
View File

@ -0,0 +1,15 @@
[Unit]
Description=High-performance, schema-free document-oriented database
After=syslog.target network.target
[Service]
Type=forking
User=mongodb
EnvironmentFile=/etc/sysconfig/mongod
ExecStart=/usr/bin/mongod $OPTIONS run
PrivateTmp=true
LimitNOFILE=64000
TimeoutStartSec=180
[Install]
WantedBy=multi-user.target

1
mongod.sysconf Normal file
View File

@ -0,0 +1 @@
OPTIONS="-f /etc/mongod.conf"

12
mongodb.logrotate Normal file
View File

@ -0,0 +1,12 @@
/var/log/mongodb/*.log {
weekly
rotate 4
copytruncate
delaycompress
compress
notifempty
missingok
postrotate
/bin/kill -USR1 `cat /var/run/mongodb/mongod.pid 2>/dev/null` 2>/dev/null || true
endscript
}

179
mongodb.spec Normal file
View File

@ -0,0 +1,179 @@
%global mongodb_gid 65059
%global mongodb_group mongodb
%global mongodb_uid 65059
%global mongodb_user mongodb
Name: mongodb
Version: 3.2.3
Release: 2mamba
Summary: A cross-platform, high-performance, schema-free document-oriented database
Group: Applications/Databases
Vendor: openmamba
Distribution: openmamba
Packager: Davide Madrisan <davide.madrisan@gmail.com>
URL: https://www.mongodb.org/
Source: http://fastdl.mongodb.org/src/mongodb-src-r%{version}.tar.gz
Source1: mongod.service
Source2: mongod.conf
Source3: mongod.sysconf
Source4: mongos.service
Source5: mongos.conf
Source6: mongos.sysconf
Source7: %{name}.logrotate
License: Affero GNU Public License, Apache License 2.0
## AUTOBUILDREQ-BEGIN
## note: run 'autospec -u -a6 mongodb' to get the list of build requirements.
## AUTOBUILDREQ-END
BuildRequires: glibc-devel
BuildRequires: libboost-devel
BuildRequires: libgcc
BuildRequires: libopenssl-devel
BuildRequires: libpcap-devel
BuildRequires: libpcre-devel
BuildRequires: libstdc++6-devel
BuildRequires: libyaml-cpp-devel
BuildRequires: libz-devel
## AUTOBUILDREQ-END
BuildRequires: scons
BuildRequires: gcc-c++
BuildRequires: gcc-go
BuildRequires: libsnappy-devel
BuildRequires: valgrind-devel
%{?systemd_requires}
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description
MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling.
MongoDB obviates the need for an Object Relational Mapping (ORM) to facilitate development.
MongoDB stores documents in collections. Collections are analogous to tables in relational databases.
Unlike a table, however, a collection does not require its documents to have the same schema.
In MongoDB, documents stored in a collection must have a unique _id field that acts as a primary key.
%package server
Group: Applications/Databases
Summary: MongoDB server
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description server
This package provides the mongo server software, mongo sharding server software, default configuration files, and init scripts.
%prep
%setup -q -n %{name}-src-r%{version}
%build
# see: https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
# note: MongoDB uses a customized built-in version of tcmalloc to achieve
# significant performance gains. Building with --use-system-tcmalloc
# produces binaries that lack these performance gains.
# note: WiredTiger is not supported on 32-bit platforms
# Re-run scons with --wiredtiger=off to build on 32-bit platforms
scons all \
%ifnarch x86_64
--wiredtiger=off \
%endif
%{?_smp_mflags} \
--use-system-pcre \
--use-system-boost \
--use-system-valgrind \
--use-system-zlib \
--use-system-yaml \
--ssl \
--disable-warnings-as-errors
# --use-system-snappy
# --use-system-stemmer
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
scons install \
%ifnarch x86_64
--wiredtiger=off \
%endif
%{?_smp_mflags} \
--use-system-pcre \
--use-system-boost \
--use-system-valgrind \
--use-system-zlib \
--use-system-yaml \
--ssl \
--disable-warnings-as-errors \
--prefix=%{buildroot}%{_prefix}
install -p -D -m 644 "%{SOURCE1}" %{buildroot}%{_unitdir}/mongod.service
install -p -D -m 644 "%{SOURCE2}" %{buildroot}%{_sysconfdir}/mongod.conf
install -p -D -m 644 "%{SOURCE3}" %{buildroot}%{_sysconfdir}/sysconfig/mongod
install -p -D -m 644 "%{SOURCE4}" %{buildroot}%{_unitdir}/mongos.service
install -p -D -m 644 "%{SOURCE5}" %{buildroot}%{_sysconfdir}/mongos.conf
install -p -D -m 644 "%{SOURCE6}" %{buildroot}%{_sysconfdir}/sysconfig/mongos
install -p -D -m 644 "%{SOURCE7}" %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
install -d %{buildroot}%{_localstatedir}/lib/%{name}
install -d %{buildroot}%{_localstatedir}/log/%{name}
install -d %{buildroot}%{_localstatedir}/run/%{name}
install -d -m 755 %{buildroot}%{_mandir}/man1
install -p -m 644 debian/mongo{,perf,sniff,d,s}.1 \
%{buildroot}%{_mandir}/man1/
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%pre server
getent group %{mongodb_group} >/dev/null || groupadd -g %{mongodb_gid} %{mongodb_group}
getent passwd %{mongodb_user} >/dev/null || useradd -g %{mongodb_gid} -u %{mongodb_uid} \
-d %{_localstatedir}/lib/%{name} -s /sbin/nologin \
-c "MongoDB Database Server" %{mongodb_user}
exit 0
%post server
%systemd_post mongod.service
%systemd_post mongos.service
exit 0
%preun server
%systemd_preun mongod.service
%systemd_preun mongos.service
if [ $1 -eq 0 ]; then
userdel %{mongodb_user} 2>/dev/null
groupdel %{mongodb_group} 2>/dev/null
fi
exit 0
%postun server
%systemd_postun_with_restart mongod.service
%systemd_postun_with_restart mongos.service
exit 0
%files
%defattr(-,root,root)
%{_bindir}/mongo
%{_bindir}/mongoperf
%{_bindir}/mongosniff
%{_mandir}/man1/mongo.1*
%{_mandir}/man1/mongoperf.1*
%{_mandir}/man1/mongosniff.1*
%files server
%defattr(-,root,root)
%{_bindir}/mongod
%{_bindir}/mongos
%{_unitdir}/*.service
%config(noreplace) %{_sysconfdir}/*.conf
%config(noreplace) %{_sysconfdir}/sysconfig/mongo*
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%dir %attr(0755, %{mongodb_user}, root) %{_localstatedir}/lib/%{name}
%dir %attr(0755, %{mongodb_user}, root) %{_localstatedir}/log/%{name}
%dir %attr(0755, %{mongodb_user}, root) %{_localstatedir}/run/%{name}
%{_mandir}/man1/mongod.1*
%{_mandir}/man1/mongos.1*
%changelog
* Sat Feb 27 2016 Davide Madrisan <davide.madrisan@gmail.com> 3.2.3-2mamba
- update the installation scripts and systemd configuration files
%changelog
* Fri Feb 26 2016 Davide Madrisan <davide.madrisan@gmail.com> 3.2.3-1mamba
- package created using the webbuild interface

61
mongos.conf Normal file
View File

@ -0,0 +1,61 @@
# for documentation of all options, see:
# https://docs.mongodb.org/manual/reference/configuration-options/
# Where to write logging data
systemLog:
# The default log message verbosity level for components (0-5)
verbosity: 0
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
logRotate: reopen
# Where and how to store data
storage:
# Directory for datafiles (defaults to /data/db/)
dbPath: /var/lib/mongodb
journal:
# Enable/Disable journaling
enabled: true
# The storage engine for the mongod database (mmapv1|wiredTiger)
# (wiredTiger by default - works for 64 bit only)
engine: mmapv1
# mmapv1:
# wiredTiger:
# How the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
# network interfaces
net:
port: 27017
# Listen to local interface only, comment to listen on all interfaces
bindIp: 127.0.0.1,::1
ipv6: true
unixDomainSocket:
# Enable/disable listening on the UNIX domain socket
enabled: true
# Alternative directory for UNIX domain sockets (defaults to /tmp)
pathPrefix: /var/run/mongodb
#security:
# Private key for cluster authentication
#keyFile: <string>
# Run with/without security (enabled|disabled, disabled by default)
#authorization
#operationProfiling:
#replication:
#sharding:

15
mongos.service Normal file
View File

@ -0,0 +1,15 @@
[Unit]
Description=High-performance, schema-free document-oriented database
After=syslog.target network.target
[Service]
Type=forking
User=mongodb
EnvironmentFile=/etc/sysconfig/mongos
ExecStart=/usr/bin/mongos $OPTIONS
PrivateTmp=true
LimitNOFILE=64000
TimeoutStartSec=180
[Install]
WantedBy=multi-user.target

1
mongos.sysconf Normal file
View File

@ -0,0 +1 @@
OPTIONS="-f /etc/mongos.conf"