.. This work is licensed under a Creative Commons Attribution 4.0 International License. Installation ------------ In the London release, Holmes could either be deployed as an analytics application of DCAE along with the whole ONAP or be deployed in a standalone mode for the sake of saving resources. If a user wants to deploy Holmes using Helm, please refer to the OOM manual for help. In case a user want to deploy Holmes independently, the steps for the installation is as follows. Prerequisites ^^^^^^^^^^^^^ #. MSB must be installed and started. The user knows the IP address of the MSB API gateway service. #. PostgreSQL must be installed and started. For the guidance on how to run a PostgreSQL, please refer to `Offical Repository of PostgreSQL `_. **While setting up PostgreSQL, a database and a user named 'holmes' must be created. The corresponding password shuold be set to 'holmespwd'. Otherwise, Holmes could not be started up successfully.** Steps ^^^^^ #. Start the rule management module of Holmes using the command below: ``sudo docker run --name holmes-rule-management -p 9101:9101 -p 9104:9104 -p 9201:9201 -d -e URL_JDBC=$DB_IP -e MSB_IAG_SERVICE_HOST=$MSB_IAG_IP -e MSB_IAG_SERVICE_PORT=$MSB_IAG_PORT -e HOST_IP=$HOST_IP -e ENABLE_ENCRYPT=false -v $LOCAL_PATH_THAT_STORES_THE_CONFIG_FILES:/opt/hrmrules nexus3.onap.org:10001/onap/holmes/rule-management:10.0.2`` #. Start the engine manamgement module of Holmes using the command below: ``sudo docker run --name holmes-engine-management -p 9102:9102 -d -e URL_JDBC=$DB_IP -e MSB_IAG_SERVICE_HOST=$MSB_IAG_IP -e MSB_IAG_SERVICE_PORT=MSB_IAG_PORT -e HOST_IP=$HOST_IP -e ENABLE_ENCRYPT=false -e BASE_URL=$BASE_URL -e PRE_ADDR=$PRE_ADDR -e POST_ADDR=$POST_ADDR -e AAI_ADDR=$AAI_ADDR -v $LOCAL_PATH_THAT_STORES_THE_CONFIG_FILES:/opt/hemtopics nexus3.onap.org:10001/onap/holmes/engine-management:10.0.2`` All the interactions between Holmes and other ONAP components are routed by MSB or Ingress. In order to register Holmes itself to MSB, the users have to specify the IP address of the host using the ``HOST_IP`` variable. Please note that the ``HOST_IP`` should be the IP address of the host, rather than the IP address of the containers (of which the IP address is allocated by the docker daemon). ``ENABLE_ENCRYPT`` specifies whether HTTPS is enabled. When it is set to "false", only the HTTP schema is allowed. Otherwise, only HTTPS is allowed. ``LOCAL_PATH_THAT_STORES_THE_CONFIG_FILES`` specifies the place where corresponding configuration files are stored. The configuration files should be organized as `files for the rule management module `_ and `files for the engine management module `_ (only *cfy.json* is needed in the standalone mode). All the addresses are organized in the form of (taking A&AI as an example) ``http(s)://$PRE_ADDR$AAI_ADDR$POST_ADDR.$BASE_URL`` within Holmes. Whether TLS is enabled depends on the value of the environment variable ``ENABLE_ENCRYPT`` Check the Status of Holmes ^^^^^^^^^^^^^^^^^^^^^^^^^^ After the installation, you have to check whether Holmes is alive or not using the health-check API. #. Use ``curl http://${msb-ip}:${msb-port}/api/holmes-rule-mgmt/v1/healthcheck`` or any other tools (e.g. Postman) to check whether the rule management module of Holmes has been spun up and registered to MSB successfully. #. Use ``curl http://${msb-ip}:${msb-port}/api/holmes-engine-mgmt/v1/healthcheck`` or any other tools (e.g. Postman) to check whether the engine management module of Holmes has been spun up and registered to MSB successfully. If the response code is ``200`` and the response body is ``true``, it's telling the user that everything is fine. Otherwise, you have to take a look at the logs to check whether there are any errors and contact the Holmes team for help.