Meza/Deploy
meza deploy
can be run to:
- Initially install everything
- Continue installing if an error occurs during install[1]
- To apply changes after modifying configuration
- 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
) - 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
editThere are countless things that can cause a meza deploy
to fail.
Logs are your friend
editMeza 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
editThe 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
editDepending 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- ↑ 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