Hi Stephen,
> > I'm deploying MongoDB to a number of servers using the script below.
> > Servers are Ubuntu 18.0.4. I have an issue where the installation
> > fails
> > to create a mongo folder in /var/run/ and thus can't start the service
> > (No
> > place to put the PID file) ... but after a reboot the MongoDB folder is
> > removed (because var/run is not persistent)
> > [...]
> > Is this an issue with how I'm installing mongo via Ansible?
> No. It's not Ansible issue at all. MongoDB doesn't care about the
> directory.
> There are more options:
> 1) Put "pidfile" to persistent location
> https://docs.mongodb.com/manual/reference/configuration-options/
> 2) Fix the service to create the directory. See hints
> https://github.com/mongodb/mongo/commit/50ca596ace0b1390482408f1b19ffb1f9170cab6
> 3) Create the directory on your own at startup.
If I install Mongo manually apt-get install mongodb-org if install fine
and the /var/run/mongodb folder is created every reboot
it's only when I install via Ansible then it doesn't.
e.g. a manual install also creates a mongodb file in /etc/init.d the
Ansible install does not
I have worked round the problem with your option 3.
I have created a file in /urs/lib/tmpfiles.d called mongo.conf contents of:
d /var/run/mongodb 0755 mongodb mongodb -
This creates the mongodb directory every reboot.
It does seem weird that the installs differs via Ansible vs manual
There shouldn't be any difference in installing packages manually and with
Ansible. If you're sure you've found a difference open an issue with the
Ansible module.
OFF-TOPIC: MongoDB. Just to close this issue here.
You've configured the repo and installed "mongodb-org" which is maintained
and supported by MongoDB Inc (they claim it's for Ubuntu). Standard Ubuntu
18.04 does not include it.
If you want to find the problem take a look what packages are installed
dpkg -l | grep mongo
See what files are installed by the package
apt-file list mongodb-org
Examine the files and see what services are active
/etc/init.d/mongodb
/etc/mongodb.conf
/lib/systemd/system/mongodb.service
FWIW. Standard Ubuntu 18.04 mongodb-server put PID by default into the file
/var/lib/mongodb/mongod.lock
and the directory /var/run/mongodb lists the socket
$ ls -1 /var/run/mongodb/
mongodb-27017.sock
init.d shows
$ grep RUNDIR /etc/init.d/mongodb
RUNDIR=/run/mongodb
PIDFILE=$RUNDIR/$NAME.pid
DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --config $CONF
run"} test -e "$RUNDIR" || install -m 755 -o mongodb -g mongodb -d
"$RUNDIR"
If you think it's MongoDB problem proceed there.
HTH, Cheers,
-vlado