Ga naar inhoud

Invapi API FAQ

In dit artikel

Algoritme voor directe serverbestelling met eq/order_instance

  1. Maak een client API key aan;

  2. Kies de serverlocatie: NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH (Nederland, VS, Finland, Duitsland, IJsland, Turkije, VK, Spanje, Italië, Polen, Zwitserland);

  3. Gebruik de presets/list aanvraag om de preset ID voor implementatie te bepalen.

    Deze ID zal later worden gebruikt als instance_id of preset. Als "id": 108, dan zijn de waarden bijvoorbeeld instance_id=108 en preset=108;

  4. Gebruik de os/list aanvraag om de os_id of os_name te bepalen van het besturingssysteem dat u wilt installeren, gebruikmakend van de instance ID uit stap 3 of de bijbehorende alias. Voor Ubuntu 22.04 wordt deze waarde bijvoorbeeld in de respons geretourneerd als "id": 187 en "alias": ubuntu. U kunt OS-ID's en informatie over voor welke servertypen ze beschikbaar zijn ook vinden in de lijst van momenteel ondersteunde OS'en;

    Opmerking

    Als u geen OS wilt installeren tijdens de implementatie, specificeer dan later own_os=1.

  5. Gebruik de software/list aanvraag om beschikbare software voor deze instance te identificeren en de bijbehorende ID op te halen (de soft_id parameter). Voor het WordPress CMS is de waarde in de output van de aanvraag bijvoorbeeld "id": 20. U kunt een lijst vinden van installeerbare software en de installatieparameters (ID, servertype, vereiste RAM en schijfruimte, aantal CPU-cores, etc.) in de lijst met ondersteunde software;

    Opmerking

    U kunt het vooraf installeren van software tijdens de implementatie overslaan als u dit later handmatig wilt doen.

  6. Gebruik de traffic_plans/list aanvraag om de netwerkverkeerplan ID voor uw server op te halen. Voor het 3Tb traffic (1Gbps) VM plan zal de aanroep "id": 25 retourneren;

  7. Verkrijg een sessietoken $HOSTKEY_TOKEN via de auth/login aanvraag;

  8. Bestel de server door de gegevens die in stappen 2-7 zijn verkregen in te voegen in de eq/order_instance aanvraag. U moet uw root wachtwoord opgeven, de factuurperiode van de server deploy_period (maandelijks, per kwartaal, 6 maanden of jaarlijks), en of u een e-mailmelding wilt ontvangen bij implementatie via deploy_notify (wij raden aan om dit standaard op true te zetten).

Optionele aanvullende parameters kunnen worden opgegeven zoals beschreven in de eq/order_instance aanroep.

Hieronder staat een voorbeeld van het bestellen van een server met WordPress (id=20) op Debian 11 (id=108):

Voorbeeld POST-aanvraag voor directe serverbestelling, 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" \
Voorbeeld van een positieve respons
{
    "result": "OK",
    "action": "order_instance",
    "invoice": 50062,
    "status": "Paid"
}

Invapi zal de overeenkomstige server in de opgegeven locatie selecteren/maken en beginnen met de implementatie. Voordat er een installatie plaatsvindt, wordt gecontroleerd of er voldoende saldo is op het credit-tegoed (indien automatische betalingen van het credit-tegoed zijn ingeschakeld) of dat er een factuur wordt uitgegeven. Als de installatie succesvol is, wordt de nieuwe server gekoppeld aan het account van de klant. De klant krijgt per e-mail bericht indien gevraagd. Alle betaalde licenties worden toegevoegd als order add-ons.

Opmerking

Als er een incompatibiliteit is tussen het geselecteerde besturingssysteem en de software die wordt geïnstalleerd, ontvangt u een melding zoals deze:

{
"result": -1,
"error": "reinstall: extra software Odoo (#49) is not compatible with Ubuntu 22.04"
}

U moet dan een ander besturingssysteem selecteren (stel een andere os_id parameter in).

Let op

U kunt de server gaan gebruiken nadat u een e-mailmelding heeft ontvangen dat de implementatie is voltooid, of wanneer de status Active verschijnt in het gedeelte My Servers van het Invapi controlepaneel. Als er tijdens het proces van serverimplementatie iets misgaat, wordt er een melding naar uw e-mailadres gestuurd. De implementatie kan 20 minuten of langer duren.

U kunt de installatie en de status ervan volgen via asynchrone acties.

De installatie is succesvol voltooid wanneer u een bericht van een asynchrone actie ontvangt zoals deze:

Voorbeeld van een positieve respons
{
"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"
}

Een server herinstalleren via eq/order_instance

Het herinstalleren van een server werkt vergelijkbaar met het bestellen ervan; het verschil is enkel dat u een extra id parameter meegeeft in de eq/order_instance aanvraag—de ID van de te herinstalleren server vanuit Invapi—en dat u de preset parameter niet gebruikt. Tijdens een herinstallatie kunt u kiezen voor een ander besturingssysteem en vooraf geïnstalleerde software, of een "schone" herinstallatie uitvoeren door de own_os=1 parameter in te stellen (in dat geval moet u os_id = 0 instellen).

Let op

De location_name parameter is verplicht, zelfs tijdens een herinstallatie. U moet de huidige serverlocatie opgeven (bijv. NL of US), anders kan de API een foutmelding over OS-compatibiliteit retourneren.

POST-aanvraag voor herinstallatie, 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}" // Aanwezigheid van ID start het proces voor serverherinstallatie.

Let op

Als u tijdens een herinstallatie-aanvraag een melding ontvangt dat er geen server met die ID is gevonden, ververs dan de lijst met servers die aan uw sessietoken zijn gekoppeld door eq/update_servers aan te roepen.

Opmerking

Als er een incompatibiliteit is tussen het geselecteerde besturingssysteem en de software die wordt geïnstalleerd, ontvangt u een melding zoals deze:

{
"result": -1,
"error": "reinstall: extra software Odoo (#49) is not compatible with Ubuntu 22.04"
}

U moet dan een ander besturingssysteem selecteren (stel een andere os_id parameter in).

Let op

U kunt geen nieuwe herinstallatie starten als het vorige proces nog niet is voltooid. Anders ontvangt u de volgende waarschuwing:

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

Stel dat we bijvoorbeeld onze server uit het vorige voorbeeld willen herinstalleren naar Rocky Linux 9 (id=205) en Grafana (id=18). De aanvraag zou als volgt zijn:

Voorbeeld POST-aanvraag voor herinstallatie, 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"
Voorbeeld van een positieve respons
{
    "result": "OK",
    "action": "order_instance",
    "callback": "e2fbe5f43796d4139983b695271da9aa", // asynchrone sleutel
    "deploy_status": "reinstall",
    "id": 32645,
    "os_name": "RockyLinux 9",
    "soft_name": "Grafana"
}

Let op

Bij het herinstalleren met deze methode wordt er geen e-mailmelding gestuurd na een succesvolle voltooiing! U moet het nieuwe root wachtwoord onthouden en opslaan (of het bestaande serverwachtwoord gebruiken). U kunt de inloginformatie voor de geïnstalleerde software vinden in de Marketplace documentatie of direct op de serverkaart binnen het Invapi controlepaneel.

Door gebruik te maken van deze asynchrone sleutel (het callback veld), kunnen we het herinstallatieproces volgen via asynchrone acties.

Voorbeeld respons voor succesvolle herinstallatie
{
    "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"
}
question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×