Ana içeriğe geç

Invapi API SSS

Bu makalede

eq/order_instance ile Anlık Sunucu Siparişi Algoritması

  1. Bir client API key oluşturun;

  2. 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);

  3. Dağıtım için ön ayar (preset) kimliğini belirlemek amacıyla presets/list isteğini kullanın.

    Bu kimlik daha sonra instance_id veya preset olarak kullanılacaktır. Örneğin, "id": 108 ise değerler instance_id=108 ve preset=108 şeklindedir;

  4. Adım 3'teki örnek kimliği veya takma adını kullanarak, yüklemek istediğiniz işletim sisteminin os_id veya os_name değ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=1 olarak belirtin.

  5. Bu örnek için kullanılabilir yazılımları tanımlamak ve kimliğini ( soft_id parametresi) 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.

  6. Sunucunuz için ağ trafik planı kimliğini almak üzere traffic_plans/list isteğini kullanın. Örneğin, 3Tb traffic (1Gbps) VM planı için çağrı "id": 25" değerini döndürecektir;

  7. auth/login isteği aracılığığla bir $HOSTKEY_TOKEN oturum belirteci edinin;

  8. Adım 2-7 arasında elde edilen verileri eq/order_instance isteğine ekleyerek sunucuyu sipariş edin. root şifrenizi, sunucu faturalandırma dönemini deploy_period (aylık, üç aylık, 6 aylık veya yıllık) ve dağıtım sırasında e-posta bildirimi isteyip istemediğinizi deploy_notify aracılığıyla belirtmelisiniz (varsayılan olarak bunu true olarak 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
{
    "result": "OK",
    "action": "order_instance",
    "invoice": 50062,
    "status": "Paid"
}

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:

Örnek olumlu yanıt
{
"result": "OK",
"scope": "Autodeploy completed, check VRI-208-64405",
"context": {
    "action": "deploy_vm",
    "id": "32645",
    "location": "NL",
    "ip": "176.222.34.23",
    "ip_ipmi": "0.0.0.0"
},
"debug": "0",
"key": "9889fcb51255146e04224205c04976e8"
}

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:

{"result":-1,"error":"another reinstall in progress for XXXXX, please wait"}

Ö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

curl -s "https://invapi.hostkey.com/eq.php" -X POST \
--data "action=order_instance" \
--data "token=5e731472b19f25c7fe61c9eb5c2ea4e3" \
--data "deploy_notify=true" \
--data "os_id=205" \
--data "soft_id=18" \
--data "root_pass=mnN48Dl@4" \
--data "location_name=NL" \
--data "id=32645"
Örnek olumlu yanıt
{
    "result": "OK",
    "action": "order_instance",
    "callback": "e2fbe5f43796d4139983b695271da9aa", // asenkron anahtar
    "deploy_status": "reinstall",
    "id": 32645,
    "os_name": "RockyLinux 9",
    "soft_name": "Grafana"
}

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.

Başarılı yeniden kurulum için örnek yanıt
{
    "result": "OK",
    "scope": "{\"result\":\"deploy_done\"}",
    "context": {
        "action": "reinstall_vm",
        "id": "32645",
        "location": "NL",
        "ip": "176.222.34.23",
        "ip_ipmi": "0.0.0.0",
        "reinstall": 1
    },
    "debug": "",
    "key": "a129bad13781bdf5790746064aba0af6"
}