Gyro Bulut İstanbul'u API, gyro CLI ve Terraform ile yönetin (tr-ist-1)
1. İstanbul'un farkları
| Konu | İstanbul (tr-ist-1) |
Avrupa/ABD bölgeleri |
|---|---|---|
| Faturalama | Ön ödemeli, saatlik (cycle ayarı yok sayılır) |
Dönemsel (aylık, 3 aylık…) |
user_data (cloud-init) |
422 ile reddedilir | Desteklenir |
| SSH anahtarı | En çok 10, sunucu hazır olunca yüklenir | 1, oluşturmada yüklenir |
| İmajlar | ubuntu-24.04, ubuntu-22.04, debian-12, alma-8 |
Bölgeye göre |
| Güç işlemleri | poweron, shutdown/poweroff, reboot |
+ reset, rescue |
| Yedek (backup) | Yok; snapshot var | Ürüne göre |
| Metrik | Yok | Var |
| IPv6 | Yok | Bölgeye göre |
Sipariş bakiyeden ödenir; bakiye ilk 24 saatlik ücreti karşılamıyorsa sipariş reddedilir (Bakiye yükleme).
2. gyro CLI ile
# Yapılandırma (bir kez): anahtar, Müşteri Paneli > Hesap menüsü > API Kimlik Bilgileri
gyro configure
# İstanbul planları ve imajları
gyro plan list --location tr-ist-1
gyro image list --region tr-ist-1
# SSH anahtarınızı yükleyin
gyro ssh-key create ~/.ssh/id_ed25519.pub --name laptop
# Önce fiyat teklifi: hiçbir şey oluşturulmaz
gyro server create web-1 --plan standart-2-4 --location tr-ist-1 \
--image ubuntu-24.04 --ssh-key laptop --dry-run
# Sunucuyu oluştur (saatlik fiyatı gösterir, onay ister)
gyro server create web-1 --plan standart-2-4 --location tr-ist-1 \
--image ubuntu-24.04 --ssh-key laptop --wait
# Bağlan
gyro server ssh web-1
# Güç, snapshot, rDNS, silme
gyro server power reboot web-1
gyro server snapshot create web-1 --wait
gyro server rdns set web-1 --ip 203.0.113.10 --hostname mail.ornekfirma.com
gyro server delete web-1 --yes
Bölge seçeneği --location ile verilir; İstanbul için --location tr-ist-1. Betiklerde onay sorularını geçmek için --yes, çıktıyı makine okumak için -o json kullanın. --user-data İstanbul'da kabul edilmez.
3. REST API ile
Taban adres https://www.gyrohosting.com/api/v1/client, kimlik Authorization: Bearer $GYRO_TOKEN. Siparişlerde Idempotency-Key başlığı zorunludur ve sipariş açık onay ("confirm": true) ister.
# İstanbul'daki imajlar
curl -s "https://www.gyrohosting.com/api/v1/client/cloud/images?region=tr-ist-1" \
-H "Authorization: Bearer $GYRO_TOKEN"
# Fiyat teklifi
curl -s -X POST https://www.gyrohosting.com/api/v1/client/cloud/servers \
-H "Authorization: Bearer $GYRO_TOKEN" -H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"plan":"standart-2-4","region":"tr-ist-1","image":"ubuntu-24.04","ssh_keys":[12],"hostname":"web-1.ornekfirma.com","dry_run":true}'
# Gerçek sipariş (bakiyeden ödenir)
curl -s -X POST https://www.gyrohosting.com/api/v1/client/cloud/servers \
-H "Authorization: Bearer $GYRO_TOKEN" -H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"plan":"standart-2-4","region":"tr-ist-1","image":"ubuntu-24.04","ssh_keys":[12],"hostname":"web-1.ornekfirma.com","confirm":true}'
Sunucu ayrıntısında ssh_keys.state alanı anahtarlarınızın durumunu gösterir; installed olunca anahtarınızla girebilirsiniz. Diğer uçlar: POST /cloud/servers/{id}/actions (güç, yeniden kurulum, parola), POST .../console, GET|PUT .../rdns, .../snapshots. Ön ödemeli sunucuda DELETE /cloud/servers/{id} her zaman anında iptaldir. Ayrıntılar /developers sayfasındaki API başvurusundadır.
4. Terraform ile
terraform {
required_providers {
gyro = {
source = "gyro-hosting/gyro"
version = ">= 0.9"
}
}
}
resource "gyro_ssh_key" "laptop" {
name = "laptop"
public_key = file("~/.ssh/id_ed25519.pub")
}
resource "gyro_server" "web" {
plan = "standart-2-4"
region = "tr-ist-1"
image = "ubuntu-24.04"
hostname = "web-1.ornekfirma.com"
ssh_key_ids = [tonumber(gyro_ssh_key.laptop.id)]
power_state = "running"
confirm_order = true # sipariş bakiyeden ödenir
}
output "web_ipv4" {
value = gyro_server.web.ipv4
}
- İstanbul'da
user_datakullanmayın (reddedilir);ssh_key_idsiçinde 10 anahtara kadar verebilirsiniz. cycleön ödemeli üründe yok sayılır; Terraform her planda yeniden oluşturma önermez.terraform destroyhizmeti iptal eder ve ücreti durdurur.
5. Otomasyon ipuçları
- CI/CD'de ayrı bir API anahtarı kullanın; yalnız gereken izinleri (
cloud_read,cloud_write) işaretleyin ve izinli IP ekleyin. - Betiğiniz sunucu açıp işi bitince silmezse ücret sürer. Geçici ortamlar için bitişte
gyro server delete --yesya daterraform destroyçalıştırın. - Harcamayı izlemek için
gyro billing balance getvegyro billing usage list(Harcamalar ekranı).
6. Sık sorulan sorular
user_data neden 422 veriyor?
İstanbul bölgesinde cloud-init desteklenmez. Otomatik kurulum için tek tıkla uygulama kullanın ya da sunucu hazır olunca SSH ile betik çalıştırın.
Anahtarım yüklenmeden bağlandım, giremiyorum, ne yapmalıyım?
Anahtarlar sunucu hazır olduktan sonra yüklenir (genellikle birkaç dakika). GET /cloud/servers/{id} içindeki ssh_keys.state değerinin installed olmasını bekleyin.
Sipariş "bakiye yetersiz" ile reddedildi, ne yapmalıyım?
İlk 24 saatlik ücret bakiyenizce karşılanmalıdır. gyro billing topup-url get bakiye yükleme bağlantısını verir.
Sıradaki adım
Geri bildiriminiz için teşekkürler!