5.9 KiB
Calypso Appliance - Airgap Deployment Bundle
Overview
Airgap deployment bundle memungkinkan instalasi Calypso Appliance tanpa koneksi internet. Semua komponen (binaries, dependencies, configs, services) di-bundle dalam satu archive yang bisa di-deploy ke mesin target.
Struktur Bundle
calypso-appliance-1.0.0-airgap/
├── install-airgap.sh # Main installer script
├── README.md # Documentation
├── binaries/
│ └── calypso-api # Pre-built backend binary
├── frontend/ # Built frontend assets
├── packages/
│ ├── package-list.txt # List of required packages (58 packages)
│ ├── debs/ # Pre-downloaded DEB packages (~200-300 packages)
│ ├── downloaded-packages.txt # List of successfully downloaded packages
│ └── missing-packages.txt # List of packages that couldn't be downloaded
├── scripts/ # Installation scripts
├── services/ # Systemd service files
├── migrations/ # Database migration files
├── configs/ # Configuration templates
└── third_party/
├── download-binaries.sh # Script to download Go/Node.js
├── go.tar.gz # (Optional) Go binary
└── nodejs.tar.xz # (Optional) Node.js binary
Membuat Bundle
1. Build Bundle (Di Mesin dengan Internet)
cd /src/calypso
./installer/airgap/create-bundle.sh --version 1.0.0
Ini akan:
- Download semua 59 packages + dependencies (~200-300 packages)
- Build backend binary (Go)
- Build frontend (React)
- Bundle semua scripts, configs, services
- Create installer script
- Create archive:
dist/airgap/calypso-appliance-1.0.0-airgap.tar.gz
2. Download Third-Party Binaries (Opsional)
Untuk fully offline, download Go dan Node.js binaries:
cd dist/airgap/calypso-appliance-1.0.0-airgap
./third_party/download-binaries.sh
3. Verify Bundle
# Check bundle integrity
sha256sum -c calypso-appliance-1.0.0-airgap.tar.gz.sha256
# List contents
tar -tzf calypso-appliance-1.0.0-airgap.tar.gz | head -20
# Check package count
tar -xzf calypso-appliance-1.0.0-airgap.tar.gz
ls -1 calypso-appliance-1.0.0-airgap/packages/debs/*.deb | wc -l
Deployment ke Target Machine
Step 1: Transfer Bundle
# Copy bundle to target machine (via USB, network share, etc.)
scp calypso-appliance-1.0.0-airgap.tar.gz user@target-machine:/tmp/
Step 2: Extract dan Install
# On target machine
cd /tmp
tar -xzf calypso-appliance-1.0.0-airgap.tar.gz
cd calypso-appliance-1.0.0-airgap
# Run installer
sudo ./install-airgap.sh
Package List
Bundle ini mencakup 58 packages REQUIRED:
- Base Tools (15): build-essential, curl, wget, git, dll
- PostgreSQL (4): postgresql, postgresql-contrib, dll
- Storage Tools (7): lvm2, xfsprogs, thin-provisioning-tools, dll
- ZFS (2): zfsutils-linux, zfs-dkms
- Tape Tools (4): lsscsi, sg3-utils, mtx, dll
- iSCSI (2): iscsitarget-dkms, open-iscsi
- File Sharing (4): nfs-kernel-server, samba, dll
- ClamAV (4): clamav, clamav-daemon, dll
- Build Dependencies (8): linux-headers-generic, dkms, dll
- Bacula (4): bacula-common, bacula-sd, dll
- mhVTL (2): mhvtl, mhvtl-utils
- Node.js (1): nodejs
- Nginx (1): nginx
Dengan dependencies, total bisa mencapai ~200-300 packages.
Lihat PACKAGE-LIST.md untuk detail lengkap.
Kernel Modules Installation
Beberapa komponen memerlukan kernel modules yang harus di-build di target system:
ZFS
# Usually available via apt (sudah di-bundle)
# Module akan di-build otomatis saat install zfs-dkms
SCST
# Requires kernel headers (sudah di-bundle)
# Build from source (if included in bundle)
mhVTL
# Usually available via apt (sudah di-bundle)
Post-Installation
1. Review Configuration
sudo nano /etc/calypso/calypso.yaml
2. Setup Database
sudo -u postgres psql -c "ALTER USER calypso WITH PASSWORD 'your_secure_password';"
3. Start Services
sudo systemctl start calypso-api
sudo systemctl enable calypso-api
4. Verify Installation
# Check service status
sudo systemctl status calypso-api
# Check API health
curl http://localhost:8080/api/v1/health
Bundle Size Optimization
Untuk mengurangi ukuran bundle:
- Exclude source code - Hanya bundle binaries
- Compress binaries - Gunakan UPX atau strip symbols
- Minimize frontend - Pastikan production build sudah optimized
- Optional packages - Semua sudah required, tidak bisa di-skip
Troubleshooting
Issue: Packages tidak terinstall
Solution: Check packages/missing-packages.txt untuk paket yang tidak ter-download
Issue: Kernel modules tidak bisa di-load
Solution: Pastikan kernel headers terinstall dan sesuai dengan kernel version
Issue: Database connection failed
Solution: Pastikan PostgreSQL running dan password sudah di-set
Issue: Service tidak start
Solution: Check logs: journalctl -u calypso-api -n 50
Security Considerations
- Verify bundle integrity - Selalu check SHA256 checksum
- Secure transfer - Gunakan encrypted transfer (USB encryption, secure network)
- Review configs - Pastikan secrets di-generate dengan secure random
- Firewall - Setup firewall setelah instalasi
- Updates - Plan untuk update mechanism (bundle baru atau patch system)
Update Process
Untuk update ke versi baru:
- Build bundle baru dengan versi baru
- Transfer ke target machine
- Extract di lokasi berbeda
- Run installer (akan upgrade existing installation)
- Migrate data jika diperlukan
Support
Untuk issues:
- Check installation logs:
/var/log/calypso/install.log - Check service logs:
journalctl -u calypso-api - Review configuration:
/etc/calypso/calypso.yaml - Check package list:
PACKAGE-LIST.md