-
Notifications
You must be signed in to change notification settings - Fork 1
Post Deployment Verification
🇫🇷 Cette page est également disponible en français : fr_Post-Deployment-Verification
After deployment, verify that all VIVO services are running correctly.
A companion tool runs all post-deployment checks in a single command from your workstation — no manual SSH sessions required.
Prerequisites: Git, make, SSH access to the VM, and your .pem key.
git clone git@github.com:Cotechnoe/vivo-azure-marketplace-docs.git
cd vivo-azure-marketplace-docs
make diag IP=<vm-public-ip>If your SSH user or key path differ from the defaults:
make diag IP=<vm-public-ip> SSH_USER=azureuser SSH_KEY=~/.ssh/your-key.pemThe script runs 12 checks and prints a colour-coded summary:
| # | Check | What it verifies |
|---|---|---|
| 1 | cloud-init | Provisioning completed successfully |
| 2 | First-boot |
/etc/vivo/.first-boot-done present (or log confirms completion) |
| 3 | Install config |
/etc/vivo/install.conf loaded with correct values |
| 4 | Systemd services | nginx / tomcat / solr are active and enabled
|
| 5 | Disk usage |
/data (or root) usage below warning threshold |
| 6 | HTTP/HTTPS | Port 80 redirects (301) and port 443 returns 200 |
| 7 | TLS certificate | Certificate expiry from the running nginx |
| 8 | UFW firewall | Ports 8983 (Solr) and 8080 (Tomcat) are explicitly DENY
|
| 9 | Solr ping |
vivocore core responds OK (tested from inside the VM) |
| 10 | SPARQL endpoint |
/api/sparqlQuery responds (200 or 403 — both acceptable) |
| 11 | Tomcat heap | JVM -Xms/-Xmx settings are configured |
| 12 | Error scan | No ERROR/Exception lines in first-boot and Tomcat logs |
Exit codes: 0 = all passed · 1 = one or more FAIL · 2 = SSH connection error
Typical healthy output:
════════════════════════════════════════════════════════
OK : 16 FAIL: 0 WARN: 2
════════════════════════════════════════════════════════
Expected WARNs:
- First-boot marker absent — downgraded to WARN when the log confirms the boot completed. The marker file is created by the first-boot script; if absent it is not critical.
/datanot found — normal on VMs without a separate data disk. The root filesystem usage is reported as a fallback.
VMs deployed through the Azure Marketplace receive a DNS name automatically. If you created the VM via the Portal wizard or a test script, the DNS name may be absent.
Assign a DNS label in one command (requires az CLI logged in with the appropriate subscription):
make set-dns IP=<vm-public-ip>To specify a custom label instead of the default vivo-<ip-dashes> pattern:
make set-dns IP=<vm-public-ip> DNS=my-vivo-instanceThe command prints the resulting FQDN, e.g. my-vivo-instance.canadacentral.cloudapp.azure.com.
SSH into the VM and run:
sudo cloud-init status --longExpected output when successful:
status: done
If status is running, first-boot is still in progress — wait a few minutes and retry.
systemctl is-active tomcat solr nginxAll three should return active.
curl -sk -o /dev/null -w "%{http_code}" http://localhost:8080/Expected: 200
Navigate to https://<public-ip>/
The VM automatically provisions a trusted Let's Encrypt certificate during first boot (~2–5 min). If you connect immediately after deployment, you may briefly see a browser security warning for the self-signed fallback cert. Wait a few minutes and reload, or see HTTPS-TLS-Certificate for details.
| Field | Default value |
|---|---|
| Login (email) | value of vivoAdminEmail parameter |
| Password | value of vivoAdminPassword parameter |
Log in at https://<public-ip>/ and change the admin password on first login.
For detailed information about what happened during deployment:
sudo tail -100 /var/log/vivo-first-boot.logGetting Started
Configuration
Using VIVO
Help
Démarrage
Configuration
Utiliser VIVO
Aide