Installing the LIPI CLI Tool
Download the CLI tool
Code Block |
---|
wget <httpshttps://storage.mazemap.com/lipi/latest/lipi |
(Optional) Make the file executable (root privilege required)
Code Block |
---|
chmod +x lipi |
Add lipi command to your path. Then you can run command with $ lipi
instead of $ ./lipi
(root privilege required)
Code Block |
---|
cpmv lipi /usr/local/bin/ |
Complete the installation (one time setup of api API key and installation folder)
Code Block |
---|
lipi --setup Initiating setup Setup already complete. Reconfigure (y/n): y Mazemap API key: <input your apiAPI key from Map Editor here> |
...
When you have already pasted the API key as shown above, you will get a new question regarding the name of your new folder in the field as shown below. (E.g, “lipi-install” or any intuitive namesname). Save the configuration and cron as shown in Lines 2 and 3 below.
Code Block |
---|
Installation folder: <input directory name here>
Saving config: OK
Installing cron: OK |
Once you have successfully installed the tool we use to install and set up the LIPI correctly, you will get the following message.
Code Block |
---|
Saving config: OK
Installing cron: OK
Setup complete |
Usage
Download and install latest lipi
(requires MazeMap api key and internet access)
...
Note: If this is the first installation, the tool will also download the configuration
file from MazeMap.
Run status check
Code Block | ||
---|---|---|
| ||
lipi --status |
Run status check, and report to MazeMap
(requires MazeMap api key and internet access)
Code Block | ||
---|---|---|
| ||
lipi --status report |
List available lipi versions
(requires MazeMap api key and internet access)
Code Block | ||
---|---|---|
| ||
lipi --list-available |
Download and install specific version of lipi
(requires MazeMap api key and internet access)
Code Block | ||
---|---|---|
| ||
lipi --install 1.0.1 |
Install from local source
Code Block | ||
---|---|---|
| ||
lipi \ --install 1.0.1 \ --lipi-path /path/to/lipi.zip \ --config-path /path/to/config.json |
Install from MazeMap, using custom configuration file
Code Block | ||
---|---|---|
| ||
lipi \ --install latest \ --config-path /path/to/config.json |
Update config of running lipi
(requires MazeMap api key and internet access)
Code Block | ||
---|---|---|
| ||
lipi --update-config |
Update config of running lipi, using custom configuration file
(requires mazemap api key and internet access)
Code Block | ||
---|---|---|
| ||
lipi --update-config \ --config-path /path/to/config.json |
List installed lipi versions and see which one is active
Code Block | ||
---|---|---|
| ||
lipi --list |
Activate a previous installation
Code Block | ||
---|---|---|
| ||
lipi --activate [copy and paste a value from the list of installed versions] |
Reconfigure running LIPI
Reinitialize the current configuration with new variables.
Code Block | ||
---|---|---|
| ||
lipi --reconfigure |
What happens during install and updating
If the MazeMap api key is set, the tool can download new versions of lipi and
the configuration file from MazeMap servers.After running initial
--setup
, the tool will install a cron task which regularly
runs the commandlipi --status report
. This will send lipi health data to MazeMap
on a regular basis so that we can provide a better level of service to you. This is
only installed if the MazeMap API Key is set during setup. If this is not installed
we can not help debugging an installation, and we will not be able to help users
if they have trouble accessing the LIPI service. See Run status check, and report to MazeMap
to see what is reported to MazeMap.When installing a new version of LIPI, the update tool will prefer to use the
configuration files of the currently running LIPI version. This can be overridden
using the--config-path
flag or by running--update-config
before running--install
.Every
--install
and--update-config
creates a new installation version. This
is done to allow switching between new and previous installations or configurations
at will. If something goes wrong, a previous version can be activated using--activate
. The installation or update process will activate the previous version
if the new version can't be started or seem unresponsive (if--status
does not
show a fully healthy installation).
Manual fixing:
--setup
stored values in a fileparams.txt
. Running--setup
again will overwrite it.A LIPI service has a
config.json
in its installation folder, which can be copied,
edited and used using--config-path
, if needed.The folders under lipi installation path are self contained and can be deleted at will.
Just make sure to not delete the running version. Use--list
or--status
to see which
version is running.LIPI is started using systemctl. Status and control of that service is available.
systemctl [status|start|stop|restart] lipi.service
.
Internal README
Local development
Build and start test docker container:
...
/mockservice
- contains files needed to start the mock service
Packaging
Start test docker container and run:
...
Produces updatetool/bin/lipi
Testing with mock lipi installation
Following commands are run from inside test docker container.
Code Block | ||
---|---|---|
| ||
# Starts a service on port 443 which answers 200 on localhost:443/shallow and localhost:443/deep. # This will allow the health checks to complete even though there's no lipi service running. ./start-mock-server.sh # run commands on python src: python src/updater.py --help # run commands using packaged executable bin/lipi --help |
SUMMARY
This summary contains commands that are useful when setting up the LIPI server.
...
Action | Command | Comment | |||
---|---|---|---|---|---|
Start LIPI server | sudo systemctl start lipi | ||||
Stop LIPI server | sudo systemctl stop lipi | ||||
Restart LIPI server | sudo systemctl restart lipi | ||||
Status of LIPI server | sudo systemctl status lipi | ||||
Check the lipi log | journalctl -u lipi -n 200 -f | Get list of GPS markers from CMX | curl https://<CMX_IP>/gcpdump --insecure | If this is successful it means | |
Create a new command line user in CMX | cmxos apiserver user add [the_username] [the_password] | ||||
Update lipi | Download the new lipi Make sure that the file is executable by typing: | ||||
open and update the config file | sudo nano config.json | ||||
view the config file | cat config.json | ||||
Move a file from one location to another | mv <start location> <end location> | In the example the config file is located in /home/cygate and we are moving it to /srv/. We are replacing the old file with the new file. |
It is useful to know what happens when you install or upgrade lipi. Since LIPI Version 4.0.0
When you run the INSTALL script the following happens:
Java is installed on the server
The keystor, geopos.jar and config.json files are copied to /srv folder
The geopos.service file is copied over to /etc/systemd/system folder
The LIPI server is started
When you run the UPGRADE script the following happens:
...
The LIPI Server is Stopped
...
file |
...
. |
...