Skip to content

AGIOne Pre-install Environment Check Guide ​

Introduction ​

ItemContent
Applicable RolePre-install checker, delivery engineer, customer operations engineer
Navigation PathDeployment > AGIOne Pre-install Environment Check
Function DescriptionIdentifies resource, port, permission, Docker, SSH, offline bundle, and middleware connectivity risks before ./agione quick or ./agione install

The precheck does not install the product. Its purpose is to expose blockers before formal installation. For a first run, remember the basic order: run doctor, fix FAIL, then decide how to handle WARN.

Beginner Explanation ​

Precheck is a rehearsal, not an installation. It tells you whether the host, ports, SSH, disk, Docker, offline bundle, and managed middleware are ready before runtime data is unpacked.

Precheck Timeline ​

StageWhat You DoCompletion Signal
Step 1: Prepare bundleEnter the bundle directory and make ./agione executable./agione help can run
Step 2: Run doctorRun ./agione doctor for single-node, or ./agione doctor --file /root/agione-install.yml for multi-nodeTerminal prints a precheck conclusion
Step 3: Verify bundleRun ./agione verify-bundleSplit-bundle SHA-256 integrity verification passes
Step 4: Fix FAILFix blockers such as disk, port, permission, SSH, or middleware issuesNo FAIL items remain
Step 5: Confirm WARNConfirm risk acceptance with the customer and delivery ownerEach WARN item has a clear decision
Step 6: InstallRun quick or TUI installation with the same configurationPrecheck report is archived

Terminology Quick Reference ​

TermPlain Explanation
doctorPre-install diagnostic command for host and configuration risks
verify-bundleCommand that validates split-bundle files against SHA256SUMS
MD5 / SHA-256MD5 detects download corruption; SHA-256 checks the outer archive and extracted split-bundle content
PASSThe check passed and you can continue
WARNA risk exists but may not block installation; owner confirmation is required
FAILA blocker that must be fixed before installation
Port occupationA target port is already listened on by another process, so the installer cannot bind it
Host-mode remote checkMulti-node check for SSH, resources, ports, and existing data on each target machine
External managed middleware checkConnectivity and credential check for cloud-provider or customer-provided database, Redis, Nacos, Kafka, and object storage

This document describes the environment checks that should be completed before running ./agione quick or ./agione install. The current checks focus on the agione-app installation scope: host resources, runtime directories, Docker and Compose, SSH access, ports, offline assets, and middleware connectivity.

1. Applicable Scenarios ​

ScenarioRecommendedDescription
Single-node installationYesCheck CPU, memory, disk, ports, Docker, Compose, and basic commands
Host-mode multi-node installationYesCheck SSH access, private node addresses, remote resources, remote commands, Docker status, and required ports
Offline or restricted-network deliveryYesConfirm the release bundle, offline images, offline Python runtime, and runtime directories
Reinstallation on an existing hostYesConfirm old data, old containers, occupied ports, and old directories before installation
External managed middlewareYesConfirm endpoint reachability, credentials, and access policies before installation

Run doctor before formal installation:

bash
cd /opt/hyperone/agione-release-v1.0-XXX
chmod +x ./agione
./agione doctor

Verify the release bundle after transfer:

bash
./agione verify-bundle

This command validates split-bundle file SHA-256 checksums against SHA256SUMS. The download-page MD5 checks transfer corruption only and does not replace verify-bundle. For production delivery, independently obtain and verify the outer .tar.gz SHA-256 through an access-controlled channel. Do not set AGIONE_SKIP_BUNDLE_VERIFY=1 for formal delivery.

For host-mode multi-node installation, run the precheck with the same configuration file that will be used for installation:

bash
./agione doctor --file /root/agione-install.yml

3. Check Result Levels ​

ResultMeaningSuggested Action
PASSMeets installation requirementsContinue to installation
WARNRisk exists but may not block installationDelivery owner and customer owner must confirm whether to accept the risk
FAILKey prerequisite is not metStop installation, remediate, and run the check again

4. Check Item Overview ​

CategoryBlocking LevelDescription
Operating system and permissionsHighConfirm Linux distribution, root or equivalent permission, and basic commands
CPU and memoryHighConfirm that the host meets the selected deployment mode
Disk spaceHighWith the default runtime_root, the installer prefers a suitable data disk and falls back to /opt/hyperone on the system disk only when needed; about 160 GiB or above is required
Runtime directoryHighConfirm that the selected runtime root can be created, written, and cleaned when reinstalling
Port occupationHighConfirm that required ports are not occupied by unmanaged processes
Docker and ComposeHighIf installed, check version and status; if missing, confirm that offline installation assets are available
SSH accessHigh for host-modeConfirm that the initiating host can access all host-mode nodes
Host-mode node addressesHighConfirm that runtime node addresses are private IPv4 addresses
Offline assetsHighConfirm release bundle checksums and offline resource availability
External managed middlewareHigh when selectedConfirm endpoint, username, password, protocol, and network policy

5. Resource Checks ​

Focus on the partition hosting /opt/hyperone.

bash
df -h /opt/hyperone 2>/dev/null || df -h /opt
df -ih /opt/hyperone 2>/dev/null || df -ih /opt
mkdir -p /opt/hyperone
touch /opt/hyperone/.agione-precheck-write-test
rm -f /opt/hyperone/.agione-precheck-write-test
Check ItemPass CriteriaSuggested Action
Available spaceRecommended 200 GiB, minimum about 160 GiB or aboveExpand disk or change runtime directory if below threshold
Write permissionroot or equivalent user can write to /opt/hyperoneFix directory permission or use an account with sufficient permission
inodeinode usage is not close to 100%Clean small files or adjust filesystem
Historical dataConfirm whether to keep, back up, or clean itComplete data confirmation before reinstallation

6. Port Checks ​

6.1 Key Ports ​

PortPurposePrecheck Focus
22/TCPSSH operationsOperations side can log in to the target host
18090/TCPAGIOne Web entryNot occupied; clients can access it
80/TCPNginx / OpenResty entryNot occupied by unmanaged processes
443/TCPHTTPS entry, optionalPlan in advance if HTTPS is enabled
8089/TCPJob access proxyNot occupied by unmanaged processes
3306/TCPMariaDBNot occupied by old database or other services
6379/TCPRedisNot occupied by old Redis or other services
8848/8849/TCPNacosNot occupied by old Nacos or other services
9848/9849/TCPNacos internal communicationNot occupied by old Nacos or other services
9000/9001/TCPMinIO API and consoleNot occupied by old MinIO or other services
9092/9093/TCPKafka broker / controllerNot occupied by old Kafka or other services
18091/TCPKafka UIFree when self-managed Kafka UI is enabled
8021/8022/18088/TCPKUBEM / CodeLab / IAMChecked when the kubem service group is enabled
8011/8017/8012/8001/8002/TCPCloud provider integration servicesChecked when the cloud service group is enabled
7091/18181/18082/TCPISync / InfluxDBChecked when the core_isync service group is enabled
bash
ss -lntup | grep -E ':(22|80|443|3306|6379|8089|8848|8849|9000|9001|9092|9093|9848|9849|18090|18091|8021|8022|18088|8011|8017|8012|8001|8002|7091|18181|18082)\b'
lsof -iTCP -sTCP:LISTEN -P -n | grep -E ':(22|80|443|3306|6379|8089|8848|8849|9000|9001|9092|9093|9848|9849|18090|18091|8021|8022|18088|8011|8017|8012|8001|8002|7091|18181|18082)\b'
nc -vz <target-host-ip> 18090
nc -vz <target-host-ip> 22

7. Host-mode Remote Checks ​

For host-mode multi-node installation, check every node defined in agione-install.yml.

Check ItemPass CriteriaFailure Signal
SSH connectivityTarget node can be reached through the configured user and portAuthentication failure or timeout
Private IPv4 addressNode address is an RFC1918 private IPv4 addressPublic IP address, public DNS name, or placeholder hostname
Remote commandsbash, tar, and Python are available or repairable from bundled assetsRequired commands are missing and cannot be repaired
SHA-256 toolEvery target node has either sha256sum or shasumA node has neither command, so installation stops before bundle synchronization
Remote resourcesCPU, memory, and selected install disk meet the selected roleNode resource below the threshold
Existing dataOld runtime data is absent, or it is backed up and controlled reinstall is requested with quick --force-overwriteOld runtime data exists without a backup, cleanup decision, or secure precheck authorization
Docker statusDocker and Compose are running or can be installed from offline assetsDocker repair failed
PortsRequired ports are free on the node that will bind themExisting process occupies a required port

8. External Managed Middleware Checks ​

When external managed middleware is selected in agione-install.yml, verify connectivity before installation.

Important: These checks validate network access, credentials, and required operation permissions only; they do not prove product implementation compatibility. Only the providers, products, versions, and access modes in the cloud middleware compatibility matrix are supported. An unlisted combination remains unsupported even if every check reports PASS.

ComponentRequired Check
DatabaseHost, port, root user, root password, SSL mode, and schema initialization permission
RedisHost, port, password, and network policy
NacosHost, API port, namespace, username, password, and health endpoint
KafkaBootstrap servers, protocol, authentication settings, and topic creation permission
Object storageEndpoint, access key, secret key, bucket access, and upload/download permission

Managed Kafka requires both metadata reachability and a topic policy decision. App nodes must be able to reach the advertised broker addresses returned by Kafka; bootstrap TCP reachability alone is not enough. If agione_app.kafka.auto_create_topics is true, precheck treats broker-side topic auto-creation as enabled. If it is false, precheck verifies that required AGIOne topics already exist. If the installer should create missing topics, the account must have topic management permission and AGIONE_MANAGED_KAFKA_CREATE_TOPICS=1 must be set before installation.

The precheck or doctor report should contain at least:

ModuleOutput
Host informationhostname, IP, operating system, kernel, CPU architecture
Resource informationCPU cores, memory, disk, inode, runtime directory permission
PortsOccupying process, listening address, conflicting port list
Docker / ComposeVersion, service status, whether offline installation is available
Host-mode nodesSSH result, private address validation, remote resources, remote commands, old data, Docker, and ports
Offline assetsSHA256SUMS verification result, bundle manifest, image package, offline Python
External middlewareEndpoint reachability and credential validation result
ConclusionPASS / WARN / FAIL, blocking items, remediation suggestions

10. Installation Admission Recommendations ​

Enter formal installation only after:

  1. ./agione doctor or the precheck script has completed, and the report has been archived.
  2. CPU, memory, disk, ports, permissions, and Docker checks are all PASS.
  3. Host-mode remote precheck is PASS when host-mode nodes are configured.
  4. External managed middleware connectivity is PASS when external managed middleware is selected.
  5. All FAIL items have been remediated and passed recheck.
  6. All WARN items have been accepted by the delivery owner and customer owner.
  7. Offline delivery has passed split-bundle SHA-256 verification with ./agione verify-bundle; production delivery has also verified the outer archive SHA-256.

11. Relationship with the Installation Workflow ​

Recommended execution sequence:

bash
cd /opt/hyperone/agione-release-v1.0-XXX
chmod +x ./agione
./agione doctor --file /root/agione-install.yml
./agione verify-bundle
./agione quick --file /root/agione-install.yml
./agione health
./agione ps

doctor identifies risks early. It does not replace the system checks in the installation workflow. During formal installation, quick still runs installation checks again and continues with unpacking, configuration, image loading, and service startup only after the checks pass.