Test Server Notes

Some tips and tricks when setting up an OpenLMIS v3 test server:

  • If on Ubuntu 16.04 or later, /etc/default/docker no longer works because now systemd is used (https://github.com/moby/moby/issues/25357). What is recommended:
    • Setup the docker daemon and the Jenkins client's SSL:  https://docs.docker.com/engine/security/https/#create-a-ca-server-and-client-keys-with-openssl
      • You can't re-use this, it's per-host.
    • Create a configuration file called daemon.json (in /etc/docker) with configuration options. An example shown below:
      {
          "storage-driver": "overlay2",
          "hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"],
          "tlsverify": true,
          "tlscacert": "/etc/docker/ca.pem",
          "tlscert": "/etc/docker/server-cert.pem",
          "tlskey": "/etc/docker/server-key.pem"
      }
      • Be sure to copy the certs and keys above into /etc/docker
    • You may need to clear out explicit options set in ExecStart in the /lib/systemd/system/docker.service file, because it will conflict with the configuration options you set in the daemon.json file. ExecStart should look something like below:

      ExecStart=/usr/bin/dockerd

      • Run sudo systemctl daemon-reload
      • Run sudo service docker restart
    • Note: the github link above has an alternative way to do it (creating a docker.conf file which references /etc/default/docker), but it didn't work for me.
  • Make sure the RDS instance has PostGIS and "uuid-ossp" extensions installed
    • There may be a small chance that RDS says that uuid-ossp is installed, but the uuid_generate_v4() function is not found. In this case, you may need to drop the extension and create it again.

OpenLMIS: the global initiative for powerful LMIS software