210 lines
5.9 KiB
Markdown
210 lines
5.9 KiB
Markdown
# 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)
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
cd dist/airgap/calypso-appliance-1.0.0-airgap
|
|
./third_party/download-binaries.sh
|
|
```
|
|
|
|
### 3. Verify Bundle
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# Usually available via apt (sudah di-bundle)
|
|
# Module akan di-build otomatis saat install zfs-dkms
|
|
```
|
|
|
|
### SCST
|
|
```bash
|
|
# Requires kernel headers (sudah di-bundle)
|
|
# Build from source (if included in bundle)
|
|
```
|
|
|
|
### mhVTL
|
|
```bash
|
|
# Usually available via apt (sudah di-bundle)
|
|
```
|
|
|
|
## Post-Installation
|
|
|
|
### 1. Review Configuration
|
|
```bash
|
|
sudo nano /etc/calypso/calypso.yaml
|
|
```
|
|
|
|
### 2. Setup Database
|
|
```bash
|
|
sudo -u postgres psql -c "ALTER USER calypso WITH PASSWORD 'your_secure_password';"
|
|
```
|
|
|
|
### 3. Start Services
|
|
```bash
|
|
sudo systemctl start calypso-api
|
|
sudo systemctl enable calypso-api
|
|
```
|
|
|
|
### 4. Verify Installation
|
|
```bash
|
|
# 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:
|
|
|
|
1. **Exclude source code** - Hanya bundle binaries
|
|
2. **Compress binaries** - Gunakan UPX atau strip symbols
|
|
3. **Minimize frontend** - Pastikan production build sudah optimized
|
|
4. **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
|
|
|
|
1. **Verify bundle integrity** - Selalu check SHA256 checksum
|
|
2. **Secure transfer** - Gunakan encrypted transfer (USB encryption, secure network)
|
|
3. **Review configs** - Pastikan secrets di-generate dengan secure random
|
|
4. **Firewall** - Setup firewall setelah instalasi
|
|
5. **Updates** - Plan untuk update mechanism (bundle baru atau patch system)
|
|
|
|
## Update Process
|
|
|
|
Untuk update ke versi baru:
|
|
|
|
1. Build bundle baru dengan versi baru
|
|
2. Transfer ke target machine
|
|
3. Extract di lokasi berbeda
|
|
4. Run installer (akan upgrade existing installation)
|
|
5. 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`
|