Overview
JetPatch 5.0 introduces a microservices-based architecture to replace the earlier monolithic deployment.
This document explains how to deploy the JetPatch platform using the provided install.sh automation script.
The deployment is containerized and relies on Docker and Docker Compose, with PostgreSQL and optional SSL support.
For more information about JetPatch 5.0, see this article.
System Requirements
| Requirement | Description |
| OS | RHEL / Rocky / AlmaLinux / Oracle Linux 8+ |
| Privileges | Root or sudo-enabled user |
| Disk Space | Minimum 50 GB free disk space |
| Internet Access | Required for pulling Docker images, or a configured private registry |
Pre-Requisite Configurations
Switch to Elevated Privileges
Run the following to elevate to a root shell (giving unrestricted system access):
| sudo su |
You can now execute privileged commands without prefixing each one with sudo.
Install PostgreSQL 16
If you are using a local PostgreSQL database (not a remote DB host), follow these steps to install and configure PostgreSQL 16 on an EL8-based system.
| Note: If you are using a different PostgreSQL version or OS version, modify the commands below accordingly. |
Step-by-Step Installation
| Step | Command | Description |
| 1 | sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm | Installs the official PostgreSQL Yum repository |
| 2 | sudo dnf -qy module disable postgresql | Disables the default AppStream PostgreSQL module to avoid version conflicts |
| 3 | sudo dnf install -y postgresql16-server | Installs PostgreSQL 16 server from the official repo |
| 4 | sudo /usr/pgsql-16/bin/postgresql-16-setup initdb | Initializes the PostgreSQL 16 data directory |
| 5 | sudo systemctl enable postgresql-16 | Enables PostgreSQL to start on boot |
| 6 | sudo systemctl start postgresql-16 | Starts the PostgreSQL 16 service |
PostgreSQL.conf — Enable Listening on Host Network
Configure PostgreSQL to accept connections from external IPs. Edit the configuration file:
| vi /var/lib/pgsql/16/data/postgresql.conf |
Locate and update the following lines:
|
listen_addresses = 'HostIP' # e.g. the IP of the JetPatch server: 10.0.10.11 port = 5432 |
This ensures PostgreSQL accepts connections from any reachable network interface, not just localhost.
pg_hba.conf - Allow Authenticated Access
Edit the PostgreSQL authentication configuration:
| vi /var/lib/pgsql/16/data/pg_hba.conf |
Add the following line to allow incoming authenticated connections from containers:
|
# Allow connections from Docker containers (IPv4) host all all 0.0.0.0/0 md5 |
This enables password-based (MD5) authentication for all host IPs - required for Docker containers to connect to the database.
Restart PostgreSQL
Reload the configuration for all changes to take effect:
| systemctl restart postgresql-16 |
Summary - PostgreSQL Configuration Files
| Component | Why It's Needed (Even for Local DB) |
| postgresql.conf | Enables listening on external IPs (e.g., Docker network bridge) |
| pg_hba.conf | Allows MD5 authentication from containers or external services |
Unzip the Deployment Package
Obtain the JetPatch deployment package from the repository or download link provided by your JetPatch contact.
- Download the deployment package to /home or any preferred path.
- Extract the package:
| tar -xvzf jetpatch-prod-deployment.tar.gz |
After extraction, the following structure will appear:
|
/root/jetpatch-prod-deployment/ ├── bin/ # Helper scripts ├── compose/ # Docker Compose YAMLs └── config/ # .env, service-vars.env, config templates |
Repository Configuration in .env File
Before running the deployment, ensure the .env file in the config/ directory is properly configured.
This file defines critical environment variables used during installation, including the Docker image repository.
Open the file:
|
cd /root/jetpatch-prod-deployment/config/ ls -la vi .env |
Confirm the following variables are correctly defined:
|
# Docker image registry location REPOSITORY=public.ecr.aws/xxxxxxxx/jetpatch/
# JetPatch service versions MAIN_VERSION=5.0.248 WORKER_VERSION=5.0.248 ... |
Variable reference
| Variable | Description |
| REPOSITORY | Docker image registry for pulling JetPatch service images. Use the public AWS ECR for production, or a private registry if applicable. |
| MAIN_VERSION | Version of JetPatch main services to deploy (UI, backend). Must match the version available in the repository. |
| WORKER_VERSION | Version of worker components such as agent tasks or patching integrations. |
| Note: If using a private or local registry, replace the REPOSITORY value accordingly, for example: REPOSITORY=registry.mycompany.com/jetpatch/ |
Make Script Files Executable
Navigate to the deployment package directory and grant execute permissions to all scripts:
|
cd /root/jetpatch-prod-deployment/ chmod +x ./bin/* |
| Best practice: After updating the .env file, run the validation script to confirm variables are parsed correctly: |
|
cd /root/jetpatch-prod-deployment/bin ./validate-env.sh |
Deploy Microservices
Deployment
Navigate to the deployment directory and run the install script:
|
cd /root/jetpatch-prod-deployment/bin/ ./install.sh --auto |
The script performs the following actions:
- Validates your environment setup
- Builds and applies SSL certificates
- Initializes and verifies required PostgreSQL databases
- Deploys core services, worker services, and runtime components via Docker containers
| Note: This step may take several minutes to complete, depending on system performance and download speeds. |
install.sh - Available Flags
| Option | Description |
| --auto | Run the installation non-interactively (no prompts) |
| --with-runtime-resources | Deploy core services along with runtime-resources (e.g., vCenter support) |
| --rollback | Roll back all services to versions defined in the .env file |
| --refresh | Pull latest images and redeploy containers (used after config changes) |
| --validate | Validate the environment and config differences, then exit (no deployment) |
| --finalize | Commit config file hashes and proceed with final deployment |
| --force-update-ip | Force update of IP addresses in service-vars.env |
| -h, --help | Show help and usage information |
Post-Deployment Validation
Once the JetPatch microservices are deployed, validate that all services are running correctly.
Check Running Docker Containers
Ensure all JetPatch microservices are up and running:
| docker ps |
You should see approximately 10 containers, including:
- log-collector
- javamelody-collector
- jp-rabbitmq
Each container should show a status of Up X minutes.
Check Individual Container Logs
Inspect the logs of a specific container to confirm successful startup or troubleshoot issues:
| docker logs <container-name> |
Examples:
|
docker logs intigua-main docker logs intigua-worker |
Look for:
- "Started Successfully" or similar boot messages
- Errors related to DB connectivity, configuration, or file paths
View JetPatch Application Logs (on Host)
Application-specific logs are written to the following directory on the host:
| /usr/share/intigua/services/data/logs/ |
Use tail, cat, or less to inspect service behavior, for example:
| tail -n 100 /usr/share/intigua/services/data/logs/intigua-main.log |
Access Container Shell and Check Environment Variables
To inspect environment variables inside a running container (e.g., to validate values from .env or service-vars.env):
- Enter a container's shell:
| docker exec -it <container-name> /bin/sh |
- Print environment variables:
| printenv |
Look for key variables such as:
- INTIGUA_DOCKER_HOST
- INTIGUA_MAIN_SERVICE_HOST
- DB_URL, DB_USERNAME, etc.
Validate Web UI
Open a browser and access the JetPatch UI:
| https://<host-ip>:<port> |
Clean Up (if needed)
To remove all containers and volumes:
| docker compose down -v |
To delete all configurations:
| rm -rf /usr/share/intigua/services/* |
Common Issues
| Error | Resolution |
| FATAL: password authentication failed for user "jetpatch" | Reset the PostgreSQL password in intigua.properties, then restart the intigua-main container. |
Comments
0 comments
Please sign in to leave a comment.