Meza/Deploy

meza deploy can be run to:

  1. Initially install everything
  2. Continue installing if an error occurs during install[1]
  3. To apply changes after modifying configuration
  4. To apply changes after pulling a new version of Meza (e.g. cd /opt/meza && sudo git fetch origin && sudo git reset --hard origin/master)
  5. Maybe more scenarios

Perhaps another way to say it is that meza uses Ansible's way of thinking about things: instead of each step being in the form "install X" it is in the form "ensure X is installed'. The former cannot be performed more than once, but the latter can. This is called Idempotence.

See Meza/Commands for more detail on using Meza.

Troubleshooting Deployments

edit

There are countless things that can cause a meza deploy to fail.

Logs are your friend

edit

Meza logs and system logs are your best friend to determine what potentially could have cause a failure. By default, most of meza's logs are located in /opt/data-meza/logs.

[root@mezatest ~]# ls -la /opt/data-meza/logs/
total 0
drwxr-xr-x. 8 meza-ansible wheel  94 Jan 24 15:52 .
drwxr-xr-x. 8 meza-ansible wheel 127 Jan 24 15:56 ..
drwxr-xr-x. 2 meza-ansible wheel   6 Jan 24 15:52 cleanup
drwxr-xr-x. 2 meza-ansible wheel  24 Jan 24 15:51 deploy
drwxr-xr-x. 2 meza-ansible wheel  44 Jan 24 15:51 deploy-output
drwxr-xr-x. 2 meza-ansible wheel   6 Jan 24 15:52 jobqueue
drwxr-xr-x. 2 meza-ansible wheel   6 Jan 24 15:52 php
drwxr-xr-x. 2 meza-ansible wheel   6 Jan 24 15:52 usr

deploy-output

edit

The screen output that meza displays during a deploy is located in /opt/data-meza/logs/deploy-output. Logs in this directory are named based on the deploy name (e.g. monolith) and are date and timestamped:

[root@mezatest ~]# ls -la /opt/data-meza/logs/deploy-output/
total 60
drwxr-xr-x. 2 meza-ansible wheel    44 Jan 24 15:51 .
drwxr-xr-x. 8 meza-ansible wheel    94 Jan 24 15:52 ..
-rw-r--r--. 1 root         root  60956 Jan 24 15:57 monolith-2023-01-24_155121.log

If for some reason the screen output from a failed deployment is lost, the date/timestamped log will contain all of the output from the attempted deployment. Check in this location to look back on former deployments.

System and Application Logs

edit

Depending on which application may have been the root cause of a deployment, the logs for the application may be in a number of locations on the system on which meza is deployed. Here are some of the most common locations to locate system and application logs:

/var/log/elasticsearch/           - SOME elasticsearch logs. Also see below.
/var/log/httpd                    - SOME web server logs
/var/log/mariadb                  - mariadb/MySQL logs
/var/log/messages                 - Various system, daemon, and application messages
/var/log/php-fpm                  - PHP FastCGI Process Manager logs (for newer versions of meza 35.x+)
/opt/data-meza/elasticsearch/log/ - More elasticsearch logs

These are not the ONLY locations to looks for logs, however they are the ones that may provide the most information when trying to troubleshoot deployments.

Notes

edit
  1. This happens ~2.5% of the time due to connections failing (e.g. Git failures) and ~2.5% of the time due to some Parsoid restart issue that has only been seen in Travis Continuous Integration builds, not locally. Ref Issue #604