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