CloudStack
Where in the admin: Infrastructure › Cloud provider › CloudStack › API connection (
/infra/cloudstack?tab=connect). Koneksi pertama juga dapat dibuat di setup wizard, langkah 2.
Fungsi
NexCMP menjual mesin virtual yang berjalan di cloud Apache CloudStack Anda. Software ini mendeploy, memulai, menghentikan, mengubah ukuran, mengambil snapshot, dan menghapus VM melalui API CloudStack, membagikan alamat IP publik dari zona, membaca penggunaan untuk penagihan dan bandwidth, serta menampilkan kapasitas dan status kesehatan di konsol admin. CloudStack tetap menjadi sumber kebenaran untuk hypervisor; NexCMP adalah etalase, penagihan, dan portal di atasnya.
Gunakan halaman ini jika CloudStack adalah (atau akan menjadi) sumber VM utama Anda. Untuk sumber kedua di sampingnya, lihat Proxmox VE.
Persyaratan
| Item | Persyaratan |
|---|---|
| Versi CloudStack | 4.23 adalah rilis yang telah diuji. Konsol VM memerlukan 4.18 atau yang lebih baru, dan scaling CPU/RAM langsung dari VM yang berjalan memerlukan 4.23 dengan KVM. |
| Tipe zona | Zona dengan setidaknya satu jaringan tamu untuk VM pelanggan dan rentang IP publik dengan alamat gratis. |
| Hypervisor | KVM adalah hypervisor yang telah diuji. |
| Akun | Sebuah domain dan akun khusus yang dibuat untuk NexCMP. Jangan pernah menggunakan kunci administrator ROOT. |
| Keterjangkauan API | Server panel harus dapat menjangkau URL API server manajemen (https://cloudstack.example.com/client/api) melalui HTTP(S). Konsol VM, bandwidth, dan fitur Kubernetes menggunakan endpoint yang sama. |
| Kunci baca-saja opsional | Kunci kedua yang bersifat baca-saja memungkinkan konsol admin menampilkan host, penyimpanan, VM sistem, dan rentang IP publik. Tidak diperlukan untuk menjual VM. |
| IP publik | Alamat IPv4 publik gratis di zona. Awalan yang dapat dijual oleh NexCMP dikonfigurasi di bawah Sales IP pools. |
| Templat | Setidaknya satu templat yang siap dan mendukung kata sandi serta satu penawaran layanan yang dapat dilihat oleh akun Anda. Lihat Templates. |
| Storage | Storage primer untuk volume akun dan, jika Anda menjual snapshot atau image, storage sekunder. |
| Bergantung pada | Tidak ada. Kubernetes, Private Cloud, Images, dan Bandwidth bergantung pada halaman ini. |
Jangan gunakan kunci administrator ROOT
Buat domain dan akun khusus untuk NexCMP. Kunci tersebut kemudian hanya menjangkau domain itu, dan kunci yang bocor tidak dapat menyentuh seluruh cloud Anda. Wizard penyiapan juga memeriksa apakah jaringan yang Anda pilih milik zona serta akun yang memiliki kunci tersebut.
Siapkan infrastruktur
Perintah-perintah ini menggunakan CloudMonkey (cmk) yang masuk sebagai administrator CloudStack. Ganti nama contoh dan placeholder di dalam tanda kurung siku.
Buat akun dan kunci API khusus
Buat domain yang akan menampung semua hal yang dimiliki NexCMP.
bashcmk create domain name=nexcmpCatat
idpada output; itu digunakan sebagai<domain-id>di bawah ini.Cari peran yang ingin Anda berikan ke akun tersebut.
bashcmk list roles type=DomainAdmin filter=id,nameRole Kapan harus memilihnya Domain Admin (disarankan) Fitur lengkap: VM, jaringan, proyek untuk Kubernetes, VPC, image. Jangkauannya berhenti di domain nexcmp.User Hanya siklus hidup VM. Pengguna biasa tidak dapat menghapus permanen (expunge) VM kecuali pengaturan global allow.user.expunge.recover.vmbernilai true; NexCMP kemudian menghentikan VM dan CloudStack menghapusnya setelahexpunge.delay.Buat akun dan pengguna pertamanya. Gunakan kata sandi acak yang panjang; kata sandi ini tidak akan pernah diketik lagi.
bashcmk create account name=nexcmp-api username=nexcmp-api \ password='CHANGE-ME-LONG-RANDOM' email=ops@example.com \ firstname=NexCMP lastname=API roleid=<role-id> domainid=<domain-id>Buat pasangan kunci API untuk pengguna baru.
bashcmk list users domainid=<domain-id> username=nexcmp-api filter=id,username cmk generate userkeys id=<user-id>Salin
apikeydansecretkey. Keduanya adalah API key dan Secret key yang Anda masukkan di NexCMP. NexCMP menyimpannya dalam keadaan terenkripsi dan hanya menampilkan empat karakter terakhir setelahnya.Pastikan domain tidak memiliki batasan sumber daya yang ketat (instance, volume, IP publik, jaringan, snapshot, templat, proyek).
bashcmk list resourcelimits domainid=<domain-id>
Buat jaringan tamu untuk VM pelanggan
VM pelanggan disebarkan ke dalam satu jaringan tamu milik akun baru. Jaringan terisolasi dengan virtual router (VR) serta layanan Static NAT, Firewall, dan Port Forwarding bekerja dengan baik, karena NexCMP menautkan IP publik ke setiap VM menggunakan static NAT.
bash
cmk list networkofferings state=Enabled guestiptype=Isolated filter=id,name
cmk create network name=customers displaytext=customers zoneid=<zone-id> \
networkofferingid=<offering-id> account=nexcmp-api domainid=<domain-id>Periksa kebijakan egress default dari penawaran: jika bernilai "deny", VM pelanggan tidak memiliki akses keluar hingga aturan egress firewall ditambahkan.
Buat penawaran dan templat agar dapat dilihat
- Service offerings dan network offerings harus bersifat publik atau ditetapkan ke domain
nexcmp, jika tidak, akun tidak dapat mencantumkan atau menggunakannya. - Daftarkan atau bagikan setidaknya satu templat (lihat Templates). NexCMP mencantumkan templat yang sudah siap dan berstatus featured.
Opsional: kunci baca-saja untuk halaman infrastruktur
Tab Capacity, Host, Storage, dan System VM serta daftar rentang IP publik menggunakan kunci kedua yang hanya memerlukan akses baca ke enam perintah. Buat peran terbatas alih-alih menggunakan kembali kunci administrator penuh:
bash
cmk create role name=nexcmp-readonly type=Admin
# <role-id> is the id printed above
for api in listHosts listCapacity listSystemVms listVlanIpRanges listClusters listStoragePools; do
cmk create rolepermission roleid=<role-id> rule=$api permission=allow
done
cmk create rolepermission roleid=<role-id> rule='*' permission=denyLalu buat akun dengan peran tersebut (di domain ROOT, karena akun tersebut membaca data di seluruh zona), buat kuncinya seperti langkah 4, dan masukkan sebagai RO API key di bagian berikutnya.
Periksa jalur jaringan
Dari server panel:
bash
curl -fsS -o /dev/null -w '%{http_code}\n' https://cloudstack.example.com/client/apiRespon HTTP apa pun (bahkan 4xx) membuktikan port dapat dijangkau. Timeout berarti ada masalah firewall atau DNS di sisi Anda.
Hubungkan di NexCMP
Dalam wizard penyiapan
Langkah 2 dari setup wizard meminta nilai yang sama. Test connection mencantumkan zona dan jaringan yang dapat dilihat oleh kunci tersebut; pilih zona dan jaringan tamu, nama tampilan untuk zona dan negara, lalu klik Save CloudStack. Wizard menolak jaringan yang tidak berada di zona tersebut atau tidak terlihat oleh kunci.

Nanti, di konsol admin
Buka Infrastructure › Cloud provider › CloudStack dan pilih tab API connection.
Isi kartu Connection:
Kolom Contoh nilai Endpoint API https://cloudstack.example.com/client/apiKunci API (akses tulis) XXXX(biarkan kosong untuk mempertahankan kunci yang disimpan)Kunci rahasia XXXXKunci API RO / Kunci rahasia RO opsional, dari akun baca-saja ID Zona UUID zona Anda 
Klik Test connection sebelum menyimpan. Ini menguji kunci yang Anda ketik tanpa menyimpannya: kunci tulis dengan
listZonesdanlistCapabilities, serta kunci baca-saja denganlistSystemVms.Klik Save connection. Biarkan Enable CloudStack connection tetap aktif; mematikannya akan membuat worker menghentikan semua tugas CloudStack tanpa kehilangan data.
Buka Services › Virtual Machines › Policy › Provisioning untuk mengatur jaringan tamu default, penawaran kustom, dan pasangan kunci default untuk VM baru.

Buka Infrastructure › Cloud provider › Sales IP pools dan, di bawah Configure sales ranges, atur Sellable IP range prefixes (misalnya
203.0.113.) dan Excluded IP prefixes jika beberapa alamat di zona tidak boleh dijual sama sekali. Biarkan prefiks kosong untuk mengizinkan setiap alamat gratis.
Yang dibaca dan ditulis oleh NexCMP
| Area | Pembacaan | Perubahan |
|---|---|---|
| VMs | daftar, status, riwayat penggunaan, endpoint konsol | menerapkan, memulai, menghentikan, memuat ulang, menginstal ulang, menghancurkan, menskalakan, mereset kata sandi dan kunci SSH |
| Disk dan snapshot | volume, snapshot VM, cadangan | membuat, melampirkan, melepaskan, mengubah ukuran, menghapus, mengambil snapshot, memulihkan |
| Jaringan | jaringan, router, IP publik, firewall, penerusan port, aturan penyeimbang beban | menghubungkan dan merilis IP publik, NAT statis, firewall, penerusan port, aturan egress, jaringan dan ACL untuk Private Cloud |
| Katalog | layanan, penawaran disk dan jaringan, templat, ISO, jenis OS | mendaftarkan dan menghapus templat dan ISO (Gambar), penawaran layanan saat membuat paket kustom |
| Kubernetes | versi yang didukung, kluster, konfigurasi | proyek, batas sumber daya, jaringan, kluster (modul Kubernetes) |
| Kunci baca-saja | host, klaster, storage pool, system VM, kapasitas, rentang IP VLAN | tidak ada |
CPU dan RAM langsung, serta bandwidth
- Hot-plug. VM yang sedang berjalan dapat diubah ukurannya tanpa reboot hanya jika template-nya mengizinkan (dapat diskalakan secara dinamis) dan sistem tamu membawa CPU serta RAM baru secara online. NexCMP mengaktifkan Auto Scaling untuk template yang namanya berakhiran
vNdengan N bernilai 6 atau lebih, atau saat Anda menyetelnya secara manual di bidang vCPU/RAM hot-plug pada template. Lihat Templates. - Sumber bandwidth. Dengan pengaturan default, NexCMP mengukur lalu lintas dari statistik VM CloudStack (
listVirtualMachinesUsageHistory, diambil setiap 5 menit dan dijumlahkan per antarmuka jaringan VM). Angka-angka tersebut mencakup lalu lintas antar-VM, sehingga bisa sedikit lebih tinggi daripada yang dihitung oleh router edge. Tetap aktifkan pengumpulan statistik VM CloudStack; jeda yang lebih lama dari retensi statistik akan dilewati. Lihat Bandwidth.
Verifikasi
- Test connection mengembalikan "Write key: OK" beserta zona Anda dan versi CloudStack.
- Infrastructure › Cloud provider › Providers menampilkan penyedia sebagai aktif dengan waktu pengujian baru-baru ini. Panel kesehatan dasbor tidak lagi menampilkan "CloudStack: not connected".
- Sales IP pools mencantumkan alamat bebas (ini diperbarui sekitar sekali seminggu/menit).
- Pesan VM kecil dari portal pelanggan atau konsol admin dan pastikan statusnya mencapai Running, memiliki IP publik, serta Anda dapat membuka konsol tersebut.
Batasan dan catatan
- Satu klaster CloudStack dapat dihubungkan dalam rilis NexCMP ini. Dialog Add cloud provider dapat menguji kunci klaster kedua tetapi tidak dapat menyimpannya.
- Satu zona CloudStack dilampirkan ke zona default NexCMP; CloudStack dengan beberapa zona dicakupkan ke zona yang Anda masukkan, sehingga VM, IP, dan jaringan dari zona lain akan diabaikan.
- Menghapus jaringan tamu di CloudStack akan membuat setiap deployment baru gagal. Konsol admin menampilkan pemberitahuan berwarna merah saat jaringan tersebut hilang.
- Kredensial tidak pernah meninggalkan server. API hanya mengembalikan empat karakter terakhir.
Pemecahan Masalah
| Gejala | Penyebab | Solusi |
|---|---|---|
listCapabilities: cloudstack 401: unable to verify user credentials and/or request signature | Kunci atau secret API salah, kunci dari pengguna lain, atau masalah jam pada server panel | Buat ulang kunci dengan cmk generate userkeys dan tempelkan keduanya. Periksa waktu server panel. |
Pengujian: listZones: … atau waktu habis (timeout) | Server panel tidak dapat menjangkau URL API | Periksa DNS, firewall, dan jalur /client/api yang tepat. |
| Wizard: "jaringan tidak ditemukan di zona tersebut untuk API key ini" | Jaringan yang dipilih milik akun atau zona lain | Buat jaringan di akun khusus (lihat di atas) dan jalankan Test connection sekali lagi. |
| Wizard: "pilih zona dan jaringan" | Pengujian belum dijalankan, atau tidak ada zona maupun jaringan yang dipilih | Klik Test connection dan pilih kedua daftar tersebut. |
| Banner "kunci CloudStack belum dikonfigurasi" | Belum ada kunci yang disimpan ("Connect later") | Isi kartu Connection, Save connection, lalu Test connection. |
| Banner "CloudStack connection is OFF" | Tombol sakelar Enable CloudStack connection dalam posisi mati | Nyalakan dan simpan. |
| Kunci baca-saja: "unusable …" dalam pengujian | Izin peran hilang atau akun salah | Periksa keenam perintah yang diizinkan dan pastikan akun berada di domain ROOT. |
| "Zone public IP ranges not measured yet" atau "no public IP ranges declared" | Tidak ada kunci baca-saja, atau zona tersebut memang tidak memiliki rentang publik | Tambahkan kunci baca-saja, atau tambahkan rentang IP publik di CloudStack. |
| "Pool kosong — tunggu 60 dtk untuk sinkronisasi vmd" | Daftar IP disegarkan oleh pekerja sekali setiap menit | Tunggu sebentar dan muat ulang. |
| "kehabisan IP Bebas dalam rentang 203.0.113." | Setiap alamat dalam prefiks yang dapat dijual telah digunakan | Tambahkan alamat ke zona, perluas prefiks, atau lepaskan IP yang tidak digunakan. |
| "Gagal mengambil data jaringan (CloudStack tidak merespons atau kunci kurang izin)" | Kunci kehilangan akses, atau CloudStack sedang mati | Jalankan Test connection; pastikan akun diaktifkan. |
| "Jaringan tamu TIDAK ada" | Jaringan dihapus di CloudStack | Buat kembali jaringan tersebut dan tetapkan sebagai default di bawah Provisioning. |