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.
1. Overview
JetPatch 5.0 introduces a microservices-based architecture to replace the earlier monolithic deployment.
For more information, see this article.
2. 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 | Internet access for pulling Docker images (or a configured private registry) |
3. Pre-Requisite Configurations
3.1 Switch to Elevated Privileges
Run the following to elevate to root (or a sudo-enabled account):
sudo su
This switches the current user to a root shell (superuser), giving unrestricted system access.
You can now execute privileged commands without typing sudo before each one.
3.2 Install PostgreSQL 16
If you're using a local PostgreSQL database (not a remote DB host), follow these steps to install and set up PostgreSQL 16 on an EL8-based system:
note: If you are using a different PostgreSQL or OS version, modify the below commands accordingly.
3.2.1 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 package 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 |
3.2.2 postgresql.conf – Enable Listening on Host Network
You must configure PostgreSQL to listen on external IPs:
Edit the PostgreSQL configuration file:
vi /var/lib/pgsql/16/data/postgresql.conf
Locate and update the following line:
listen_addresses = 'HostIP' # for ex: ip of Jetpatch Server(10.0.10.11)
port = 5432
This ensures PostgreSQL accepts connections from any reachable network interface — not just
localhost.
3.2.3 pg_hba.conf – Allow Authenticated Access
Edit the PostgreSQL authentication configuration:
vi /var/lib/pgsql/16/data/pg_hba.conf
Edit the following lines to allow incoming authenticated connections from containers:
# Allow connections from Docker containers (IPv4)
host all all 0.0.0.0/0 md5
These settings enable password-based (MD5) authentication for any host IP — which is essential for Docker containers to connect to the database.
3.2.4 Restart PostgreSQL for Changes to Take Effect
Run the following command to reload the configuration:
systemctl restart postgresql-16
Summary
| 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 |
3.3 Unzip the Deployment Package
The JetPatch deployment package should be obtained using the repository or download link provided by the customer.
Download the deployment package to /home or any path
2. untar the files
tar -xvzf jetpatch-prod-deployment.tar.gz
After extraction, this structure will appear:
/root/jetpatch-prod-deployment/
├── bin/ # Helper scripts
├── compose/ # Docker Compose YAMLs
├── config/ # .env, service-vars.env, config templates
3.4 Repository Configuration in .env File
Before running the environment validation or deployment, ensure that the .env file located in the config/ directory is properly configured. This file defines critical environment variables used during the installation process, including the Docker image repository for pulling JetPatch services.
Key Fields to Review in .env
Open the .env file:
for example:
cd /root/jetpatch-prod-deployment/config/
ls -la
vi .env
Confirm that the following variables and any additional configuration 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
...........
...........
Explanation of Variables
| Variable | Description |
|---|---|
REPOSITORY |
Points to the Docker image registry that will be used to pull JetPatch service images. Use the public AWS ECR for production unless you're using a private environment. |
MAIN_VERSION |
Defines the JetPatch main services version to be deployed (e.g., UI, backend). Must match the version available in the repository. |
WORKER_VERSION |
Defines the version of worker-related components such as agent tasks or patching integrations. |
REPOSITORY value accordingly, for example:REPOSITORY=registry.mycompany.com/jetpatch/
This confirms the .env variables are parsed correctly and the installer will be able to pull images during deployment.
3.5 Make all script files executable :
go to the downloaded deployment package path and give the executable permission to all files
for example
cd /root/jetpatch-prod-deployment/
chmod +x ./bin/*
Best Practice
After updating the .env file, it's strongly recommended to run the validation script again:
cd /root/jetpatch-prod-deployment/bin
./validate-env.sh
4. Deploy Microservices
4.1 Deployment
Navigate to the extracted deployment directory.
cd /root/jetpatch-prod-deployment/bin/
Execute the following command to begin the deployment process:
./install.sh --auto
This 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
This step may take several minutes to complete, depending on system performance and download speeds.
Optional Flags:
JetPatch Microservices Installer – install.sh Usage
| 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 |
5. Post-Deployment Validation
Once the JetPatch microservices are deployed, it's important to validate that all services are running correctly and behaving as expected.
Below are the key steps to verify your deployment:
5.1. Check Running Docker Containers
Ensure all JetPatch microservices are up and running:
docker ps
You should see containers like (10 total):
- log-collector
- javamelody-collector
- jp-rabbitmq
Each container should show a status like Up X minutes.
5.2. Check Individual Container Logs
Inspect the logs of any 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
5.3. View JetPatch Application Logs (Inside Host)
Application-specific logs are written to the following host directory:
/usr/share/intigua/services/data/logs/
You can tail, cat, or less these log files to inspect service behavior:
tail -n 100 /usr/share/intigua/services/data/logs/intigua-main.log
5.4. Access Container Shell and View Environment Variables
To check inside a running container (e.g., to validate environment variables injected 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 like:
INTIGUA_DOCKER_HOSTINTIGUA_MAIN_SERVICE_HOSTDB_URL,DB_USERNAME, etc.
5.5. Validate Web UI and API
After container validation:
-
Access the JetPatch UI in your browser:
https://<host-ip>:<port>
6. Clean Up (if needed)
To remove all containers and volumes:
docker compose down -v
To delete all configurations:
rm -rf /usr/share/intigua/services/*
7. Common Issues
| Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "jetpatch" | reset the password of postgressql in intigua.properties and restart docker intigua-main |
Comments
0 comments
Please sign in to leave a comment.