Panduan Instalasi & Penerapan
Panduan ini menjelaskan proses instalasi, konfigurasi, dan pengaturan layanan sistem untuk Cockpit. Panduan ini mencakup penerapan instans tunggal (single-instance) serta arsitektur clustered dengan ketersediaan tinggi (high-availability).
Topologi Penerapan
Pilih topologi penerapan yang sesuai dengan kebutuhan infrastruktur organisasi Anda:
1. Penerapan Single-Instance (Instans Tunggal)
Cocok untuk lingkungan skala kecil yang mengelola kurang dari 20 hypervisor Vapor. Satu proses gateway aplikasi Cockpit terhubung langsung ke server database PostgreSQL mandiri. Arsitektur ini mudah dikonfigurasi tetapi tidak memiliki toleransi kesalahan (fault tolerance).
2. Penerapan Multi-Instance (Clustered Ketersediaan Tinggi)
Direkomendasikan untuk lingkungan produksi di mana waktu henti (downtime) harus diminimalkan. Beberapa instans Cockpit aktif-aktif berjalan secara bersamaan di belakang load balancer Layer 7 (seperti HAProxy atau NGINX). Instans tersebut mengoordinasikan status menggunakan database PostgreSQL bersama yang terklaster (misalnya, dikelola melalui Patroni) dan menyinkronkan peristiwa secara real-time menggunakan saluran pg_notify PostgreSQL.
Langkah 1: Inisialisasi Database
Cockpit memerlukan database PostgreSQL (versi 15 atau lebih tinggi) untuk menyimpan data konfigurasi, riwayat audit, dan metadata inventaris.
Skema database menggunakan ekstensi uuid-ossp untuk menghasilkan pengenal unik universal (UUID) yang kompatibel dengan RFC 4122 sebagai kunci utama (primary key) di seluruh sumber daya klaster (termasuk mesin virtual, catatan pengguna, dan antarmuka jaringan).
Skrip Database
Masuk ke konsol PostgreSQL Anda dan jalankan perintah konfigurasi berikut:
-- 1. Buat database target baru
CREATE DATABASE cockpit_db;
-- 2. Buat akun layanan sistem dengan kata sandi yang aman
CREATE USER cockpit_user WITH PASSWORD 'securepassword';
-- 3. Berikan hak istimewa skema kepada akun layanan
GRANT ALL PRIVILEGES ON DATABASE cockpit_db TO cockpit_user;
-- 4. Hubungkan ke database yang baru dibuat
\c cockpit_db
-- 5. Aktifkan ekstensi pembuatan UUID
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";Langkah 2: Instalasi Sistem
Cockpit dapat diterapkan baik sebagai biner sistem mandiri atau di dalam container engine (Docker atau Podman).
Opsi A: Instalasi Biner Mandiri
- Dapatkan biner
cockpitterkompilasi yang cocok dengan arsitektur target Anda. - Pindahkan biner ke direktori biner sistem:
/usr/local/bin/cockpit. - Konfigurasikan izin eksekusi:
chmod +x /usr/local/bin/cockpit. - Buat direktori konfigurasi sistem:
mkdir -p /etc/cockpit.
Opsi B: Penerapan Berbasis Container
Untuk membangun dan menjalankan layanan Cockpit sebagai container, gunakan perintah berikut:
# 1. Kompilasi image container dari direktori utama proyek
docker build -t awanio/cockpit:latest -f Containerfile .
# 2. Jalankan container dengan menyertakan string koneksi PostgreSQL
docker run -d \
-p 7771:7771 \
--name cockpit-server \
-v /etc/cockpit:/etc/cockpit \
-e DATABASE_URL="postgres://cockpit_user:securepassword@db-host:5432/cockpit_db?sslmode=disable" \
awanio/cockpit:latestLangkah 3: Konfigurasi (cockpit.conf)
Cockpit membaca pengaturan runtime dari file /etc/cockpit/cockpit.conf. Berikut adalah contoh file konfigurasi:
# --- Pengaturan Koneksi & Gateway HTTP ---
PORT = 7771
BIND_ADDRESS = "0.0.0.0"
SSL_CERT = "/etc/cockpit/certs/server.crt" # Jalur ke sertifikat TLS lokal
SSL_KEY = "/etc/cockpit/certs/server.key" # Jalur ke kunci privat TLS lokal
# --- Integrasi Database ---
# URL koneksi PostgreSQL dan konfigurasi connection pool
DATABASE_URL = "postgres://cockpit_user:securepassword@localhost:5432/cockpit_db?sslmode=disable"
DB_MAX_IDLE_CONNS = 10
DB_MAX_OPEN_CONNS = 100
# --- Keamanan Autentikasi JWT ---
# Kunci penandatanganan kriptografis untuk JSON Web Token
JWT_SECRET = "supersecretjsonwebtokenkeyfordevelopment"
JWT_EXPIRATION_HOURS = 24
# --- Metrik & Telemetri Downstream ---
# Properti pemeriksaan kesehatan dan interval pemindaian telemetri (dalam detik)
COLLECTOR_HEALTH_CHECK_INTERVAL = 10
VAPOR_WS_TIMEOUT_SECONDS = 120Langkah 4: Konfigurasi Layanan Systemd
Saat menjalankan Cockpit sebagai biner mandiri, konfigurasikan systemd untuk mengelola siklus hidup daemon:
Buat file konfigurasi layanan /etc/systemd/system/cockpit.service yang berisi:
[Unit]
Description=Cockpit Multi-Host Vapor Manager
After=network.target postgresql.service
[Service]
Type=simple
User=cockpit
WorkingDirectory=/var/lib/cockpit
ExecStart=/usr/local/bin/cockpit -config /etc/cockpit/cockpit.conf
Restart=always
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.targetMenjalankan Daemon
Jalankan perintah berikut untuk memuat ulang systemd, mengonfigurasi layanan agar berjalan saat boot, dan memulai daemon:
# 1. Muat ulang konfigurasi manajer systemd
systemctl daemon-reload
# 2. Aktifkan layanan dan jalankan perintah mulai
systemctl enable --now cockpit.service
# 3. Pantau log output sistem
journalctl -u cockpit.service -f