Invapi API SSS¶
Bu makalede
eq/order_instance ile Anlık Sunucu Siparişi Algoritması¶
-
Bir client API key oluşturun;
-
Sunucu konumunu seçin: NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH (Hollanda, ABD, Finlandiya, Almanya, İzlanda, Türkiye, Birleşik Krallık, İspanya, İtalya, Polonya, İsviçre);
-
Dağıtım için ön ayar (preset) kimliğini belirlemek amacıyla presets/list isteğini kullanın.
Bu kimlik daha sonra
instance_idveyapresetolarak kullanılacaktır. Örneğin,"id": 108ise değerlerinstance_id=108vepreset=108şeklindedir; -
Adım 3'teki örnek kimliği veya takma adını kullanarak, yüklemek istediğiniz işletim sisteminin
os_idveyaos_namedeğerini belirlemek için os/list isteğini kullanın. Örneğin, Ubuntu 22.04 için bu değer yanıtta"id": 187"ve"alias": ubuntu"olarak dönecektir. İşletim sistemi kimliklerini ve hangi sunucu türlerinde mevcut olduklarına dair bilgileri güncel desteklenen işletim sistemleri listesinde bulabilirsiniz;Not
Dağıtım sırasında bir işletim sistemi yüklemek istemiyorsanız, daha sonra
own_os=1olarak belirtin. -
Bu örnek için kullanılabilir yazılımları tanımlamak ve kimliğini (
soft_idparametresi) almak için software/list isteğini kullanın. Örneğin, WordPress CMS için istek çıktısındaki değer"id": 20"olacaktır. Yüklenebilir yazılımların bir listesini ve kurulum parametrelerini (ID, sunucu türü, gerekli RAM ve disk alanı, CPU çekirdek sayısı vb.) desteklenen yazılım listesinde bulabilirsiniz;Not
Daha sonra manuel olarak yapmak isterseniz, dağıtım sırasında yazılım ön kurulumunu atlayabilirsiniz.
-
Sunucunuz için ağ trafik planı kimliğini almak üzere traffic_plans/list isteğini kullanın. Örneğin,
3Tb traffic (1Gbps) VMplanı için çağrı"id": 25"değerini döndürecektir; -
auth/login isteği aracılığığla bir
$HOSTKEY_TOKENoturum belirteci edinin; -
Adım 2-7 arasında elde edilen verileri eq/order_instance isteğine ekleyerek sunucuyu sipariş edin.
rootşifrenizi, sunucu faturalandırma döneminideploy_period(aylık, üç aylık, 6 aylık veya yıllık) ve dağıtım sırasında e-posta bildirimi isteyip istemediğinizideploy_notifyaracılığıyla belirtmelisiniz (varsayılan olarak bunutrueolarak ayarlamanızı öneririz).
İsteğe bağlı ek parametreler eq/order_instance çağrısında açıklandığı gibi belirtilebilir.
Aşağıda, Debian 11 (id=108) üzerinde WordPress (id=20) ile sunucu sipariş etme örneği verilmiştir:
Anlık sunucu siparişi için örnek POST isteği, cURL
curl -s "https://invapi.hostkey.com/eq.php" -X POST \
--data "action=order_instance" \
--data "token=eeee51003b1d81d2eca65660735c0531" \
--data "deploy_period=monthly" \
--data "deploy_notify=true" \
--data "preset=108" \
--data "location_name=NL" \
--data "os_id=180" \
--data "soft_id=20" \
--data "traffic_plan=25" \
--data "root_pass=mdLus8Ng" \
Örnek olumlu yanıt
Invapi, belirtilen konumda ilgili sunucuyu seçecek/oluşturacak ve dağıtım işlemine başlayacaktır. Herhangi bir kurulumdan önce (eğer kredi bakiyesinden otomatik ödemeler etkinleştirilmişse) kredi bakiyesinde yeterli fon olup olmadığı kontrol edilecek veya bir fatura kesilecektir. Kurulum başarılı olursa, yeni sunucu müşterinin hesabına bağlanacaktır. Talep üzerine müşteriye e-posta ile bildirim yapılacaktır. Tüm ödenmiş lisanslar sipariş eklentisi olarak eklenecektir.
Not
Seçilen işletim sistemi ile yüklenen yazılım arasında bir uyumsuzluk olması durumunda şu şekilde bir mesaj alırsınız:
{
"result": -1,
"error": "reinstall: extra software Odoo (#49) is not compatible with Ubuntu 22.04"
}
Farklı bir işletim sistemi seçmeniz gerekecektir (farklı bir os_id parametresi ayarlayın).
Dikkat
Dağıtımın tamamlandığına dair e-posta bildirimi aldıktan sonra veya Invapi kontrol panelindeki My Servers bölümünde Active durumu göründüğünde sunucuyu kullanmaya başlayabilirsiniz. Sunucu dağıtım işlemi sırasında bir hata oluşursa e-postanıza bir bildirim gönderilecektir. Dağıtım 20 dakika veya daha fazla sürebilir.
Kurulumu ve durumunu asenkron işlemler kullanarak izleyebilirsiniz.
Şöyle bir asenkron işlem mesajı aldığınızda kurulum başarıyla tamamlanmış olacaktır:
eq/order_instance aracılığıyla sunucu yeniden kurulumu (Reinstall)¶
Sunucuyu yeniden kurmak, bir sunucu sipariş etmeye benzer şekilde gerçekleştirilir; tek farkı eq/order_instance isteğinde Invapi'den yeniden kurulacak olan sunucunun ID'si olan ek bir id parametresi geçilmesi ve preset parametresinin kullanılmamasıdır. Yeniden kurulum sırasında farklı bir işletim sistemi ve önceden yüklenmiş yazılım seçebilir veya own_os=1 parametresini ayarlayarak "temiz" (clean) bir yeniden kurulum gerçekleştirebilirsiniz (bu durumda os_id = 0 olarak ayarlanmalıdır).
Dikkat
location_name parametresi yeniden kurulum sırasında bile zorunludur. Mevcut sunucu konumunu (örneğin NL veya US) belirtmelisiniz, aksi takdirde API bir işletim sistemi uyumluluk hatası döndürebilir.
Yeniden kurulum için POST isteği, cURL
curl -s "https://invapi.hostkey.com/eq.php" -X POST \
--data "action=order_instance" \
--data "token=$HOSTKEY_TOKEN" \
--data "hostname={Hostname}" \
--data "os_id={OS ID}" \
--data "soft_id={Software ID}" \
--data "root_pass={root password}" \
--data "ssh_key={public SSH key}" \
--data "post_install_script=" \
--data "own_os=" \
--data "root_size=100" \
--data "location_name={Server location with specified ID}" \
--data "id={Invapi Server ID}" // ID'nin varlığı sunucu yeniden kurulum sürecini tetikler.
Dikkat
Yeniden kurulum isteği sırasında bu ID ile eşleşen bir sunucu bulunamadığına dair bir mesaj alırsanız, eq/update_servers çağrısını yaparak oturum belirtecinize bağlı sunucuların listesini yenileyin.
Not
Seçilen işletim sistemi ile yüklenen yazılım arasında bir uyumsuzluk olması durumunda şu şekilde bir mesaj alırsınız:
{
"result": -1,
"error": "reinstall: extra software Odoo (#49) is not compatible with Ubuntu 22.04"
}
Farklı bir işletim sistemi seçmeniz gerekecektir (farklı bir os_id parametresi ayarlayın).
Dikkat
Önceki süreç tamamlanmadıysa yeni bir yeniden kurulum başlatamazsınız. Aksi takdirde şu uyarıyı alırsınız:
Örneğin, önceki örnekteki sunucumuzu Rocky Linux 9 (id=205) ve Grafana (id=18) ile yeniden kurmak istediğimizi varsayalım. İstek şu şekilde olacaktır:
Yeniden kurulum için örnek POST isteği, cURL
Örnek olumlu yanıt
Dikkat
Bu yöntem kullanılarak yeniden kurulum yapıldığında, başarılı tamamlanma üzerine e-posta bildirimi gönderilmez! Yeni root şifresini hatırlamanız ve kaydetmeniz gerekir (veya mevcut sunucu şifresini kullanabilirsiniz); ayrıca yüklü yazılım için erişim bilgilerini Marketplace dokümantasyonunda veya doğrudan Invapi kontrol panelindeki sunucu kartında bulabilirsiniz.
Bu asenkron anahtarı ( callback alanı) kullanarak, asenkron işlemler aracılığıyla yeniden kurulum sürecini takip edebiliriz.