Vai al contenuto

Panoramica

Cloud Server Shared CPU è il servizio cloud on-demand ideale per test, sviluppo, staging e per chi ha bisogno di creare e distruggere macchine cloud con fatturazione a consumo, in modo rapido e con costi ottimizzati.

In questa sezione vengono approfondite le funzionalità Rest API dei servizi:

  • Cloud Server Shared CPU
  • Cloud Server High Memory
  • Cloud Server GPU

Crea Il tuo primo Server via API

Creare un Server virtuale via API è molto semplice e in questa pagina sono presenti tutte le informazioni necessarie per istanziare velocemente un Server virtuale

In questa guida viene utilizzato il software a riga di comando curl per eseguire le nostre chiamate ma qualsiasi client HTTP può sostituirlo senza problemi come ad esempio Postman o Bruno

Eseguire il login

Come prima operazione è necessario eseguire il login sui nostri servizi e generare un token JWT di accesso. La spiegazione di cos'è un token JWT è esterna a questa guida e non è necessaria per l'utilizzo dei nostri servizi. Può essere immaginato come una chiave che identifica chi l'ha generata e chi la utilizza

Per generarlo dobbiamo eseguire la seguente richiesta:

curl -X POST https://api.seeweb.it/ecs/v2/login \
  -H 'Content-Type: application/json' \
  -d  '{
  "username": "*il tuo nome utente*",
  "password": "*la tua password*"
}'

La risposta se le credenziali, sarà simile alla seguente:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtc2ciOiJXcm9uZyBQbGFjZSBkdWRlPyJ9.vBb9pIUYaxiGtO-7HY6hzBXH-q7L0GJS8stz2VYqb90",
  "expire": 1728560902,
  "status": "ok"
}

Il token presente nel corpo della risposta è appunto il Token JWT dell'utente e il campo expire indica la sua scadenza

In caso si voglia sapere in che momento il token non sarà più valido è possibile copiare il valore di expire e inserirlo sul sito Unix Timestamp Converter

O semplicemente usare il seguente Calcolatore

->

Info

Per altre informazioni sulla gestione degli utenti è possibile consultare Account

È anche possibile utilizzare gli API-Token per eseguire l'autenticazione ai nostri servizi, per far ciò consulta API Token

Creare un Server

Una volta ottenuto il Token JWT è possibile procedere alla creazione, per test creeremo un Server ubuntu di piccola taglia nel datacenter di Frosinone

Ottenere i Piani disponibili

Come primo passaggio è necessario visualizzare e identificare il piano di interesse e può essere fatto con la seguente richiesta:

curl -X GET https://api.seeweb.it/ecs/v2/plans \
   -H 'Authorization: Bearer *il tuo token*'

La risposta sarà simile alla seguente:

{
  "status": "ok",
  "plans": [
    {
      "id": 1,
      "name": "eCS1",
      "cpu": "1",
      "ram": "1024",
      "disk": "20",
      "gpu": "0",
      "gpu_label": null,
      "hourly_price": 0.019,
      "montly_price": 14.0,
      "windows": false,
      "host_type": "ECS",
      "available": true,
      "available_regions": [
        {
          "id": 2,
          "location": "it-mi2",
          "description": "Milano"
        },
        {
          "id": 3,
          "location": "it-fr2",
          "description": "Frosinone"
        },
        {
          "id": 6,
          "location": "ch-lug1",
          "description": "Lugano"
        },
        {
          "id": 7,
          "location": "bg-sof1",
          "description": "Sofia"
        }
      ]
    },
    {
      "id": 7,
      "name": "eCS2",
      "cpu": "2",
      "ram": "2048",
      "disk": "40",
      "gpu": "0",
      "gpu_label": null,
      "hourly_price": 0.032,
      "montly_price": 23.0,
      "windows": false,
      "host_type": "ECS",
      "available": true,
      "available_regions": [
        {
          "id": 2,
          "location": "it-mi2",
          "description": "Milano"
        },
        {
          "id": 3,
          "location": "it-fr2",
          "description": "Frosinone"
        },
        {
          "id": 6,
          "location": "ch-lug1",
          "description": "Lugano"
        }
      ]
    }
  ]
}

Ottenere le Regioni disponibili

Individuato il piano di interesse (nel nostro caso eCS1) possiamo procedere a verificare la disponibilità dello stesso nei vari datacenter.

curl -X POST https://api.seeweb.it/ecs/v2/regions/availables
  -H 'Content-Type: application/json'
  -H 'Authorization: Bearer *il tuo token*'                   
  -d '{
  "plan": "eCS1"
  }'

La risposta sarà simile alla seguente:

{
  "status": "ok",
  "regions": [
    [
      "ch-lug1",
      "it-fr2",
      "it-mi2",
      "bg-sof1"
    ]
  ]
}

È quindi possibile riscontrare che il piano 'eCS1' è attivabile nel datacenter denominato 'it-fr2' situato in italia a Frosinone.

Ottenere gli OS disponibili

Successivamente è necessario identificare un sistema operativo di interesse:

curl -X POST https://api.seeweb.it/ecs/v2/images/basics
  -H 'Content-Type: application/json'
  -H 'Authorization: Bearer *il tuo token*'   

La risposta sarà simile alla seguente:

{
  "status": "ok",
  "images": [
    {
      "id": 408,
      "name": "debian-9",
      "creation_date": "2019-10-02T16:48:18+00:00",
      "active_flag": true,
      "status": "CD",
      "uuid": "a1fa433a-ef1a-4b09-8571-514474847495",
      "description": "Debian Linux 9",
      "notes": "Debian Linux distribution",
      "public": true,
      "cloud_image": false,
      "so_base": "debian",
      "api_version": "v4",
      "version": "9"
    },
    {
      "id": 409,
      "name": "ubuntu-1604",
      "creation_date": "2019-10-02T16:48:18+00:00",
      "active_flag": true,
      "status": "CD",
      "uuid": "87098cfe-9e2c-4020-acd3-c91e46fe46a9",
      "description": "Ubuntu Linux 16.04 LTS",
      "notes": "Ubuntu Linux distribution",
      "public": true,
      "cloud_image": false,
      "so_base": "ubuntu",
      "api_version": "v4",
      "version": "1604"
    },
        {
      "id": 509,
      "name": "ubuntu-2204",
      "creation_date": "2022-09-02T12:38:46+00:00",
      "active_flag": true,
      "status": "CD",
      "uuid": "2d41e9c4-280d-423b-8110-9d14173f601c",
      "description": "Ubuntu Linux 22.04 LTS",
      "notes": "Ubuntu Linux 22.04 LTS",
      "public": true,
      "cloud_image": false,
      "so_base": "ubuntu",
      "api_version": "v4",
      "version": "2204"
    },

    {
      "id": 411,
      "name": "windows-2012r2",
      "creation_date": "2019-10-02T16:48:18+00:00",
      "active_flag": true,
      "status": "CD",
      "uuid": "618c4587-812e-4e9c-bb1c-c7976f671477",
      "description": "Windows Server 2012 R2",
      "notes": "Windows Server 2012 R2 Standard Edition",
      "public": true,
      "cloud_image": false,
      "so_base": "windows",
      "api_version": "v4",
      "version": "2012"
    }
  ]
}

In caso si voglia utilizzare il sistema operativo 'Ubuntu Linux 22.04 LTS' è necessario il codice 'ubuntu-2204'

Creare un nuovo Server

Come ultimo passaggio si può procedere alla creazione:

curl -X POST https://api.seeweb.it/ecs/v2/servers
  -H 'Content-Type: application/json'
  -H 'Authorization: Bearer *il tuo token*'                   
  -d '{
  "plan": "eCS1",
  "image": "ubuntu-2204",
  "location": "it-fr2",
  "notes": "my-first-server"
  }'

La risposta sarà simile alla seguente:

{
  "status": "ok",
  "action_id": 37430,
  "server": {
    "name": "ec205827",
    "ipv4": "",
    "ipv6": "",
    "group": null,
    "plan": "eCS1",
    "plan_size": {
      "core": "1",
      "ram": "1024",
      "disk": "20",
      "gpu": "0",
      "gpu_label": null,
      "host_type": "ECS"
    },
    "reserved_plans": [],
    "is_reserved": false,
    "reserved_until": "",
    "support": null,
    "location": "it-fr2",
    "location_label": "Frosinone",
    "notes": "my-first-server",
    "so": "ubuntu-2204",
    "so_label": "Ubuntu Linux 22.04 LTS",
    "creation_date": "2024-10-24T14:43:13.150586+00:00",
    "deletion_date": null,
    "active_flag": false,
    "status": "Booting",
    "progress": 0,
    "api_version": "v4",
    "user": "eCS00099"
  }
}

Monitorare la Creazione

Per monitorare la creazione del server è possibile utilizzare il campo 'action_id' ricevuto nella precedente richiesta (nell'esempio: '37430').

È possibile farlo con la seguente richiesta:

curl -X GET https://api.seeweb.it/ecs/v2/actions/37430 \
  -H 'Authorization: Bearer *il tuo token*'                   

La risposta sarà simile alla seguente:

{
  "status": "ok",
  "action": {
    "id": 37430,
    "status": "in-progress",
    "user": "eCS00099",
    "created_at": "2024-10-24T14:43:13.611722+00:00",
    "started_at": "2024-10-24T14:43:13.611449+00:00",
    "completed_at": null,
    "resource": "ec205827",
    "resource_type": "ECS",
    "type": "create_server",
    "progress": 25
  }
}

È possibile monitorare l'azione fino a che lo stato non diventa 'completed':

{
  "status": "ok",
  "action": {
    "id": 37430,
    "status": "completed",
    "user": "eCS00099",
    "created_at": "2024-10-24T14:43:13.611722+00:00",
    "started_at": "2024-10-24T14:43:13.611449+00:00",
    "completed_at": "2024-10-24T14:52:13.611449+00:00",
    "resource": "ec205827",
    "resource_type": "ECS",
    "type": "create_server",
    "progress": 100
  }
}

Visualizzare il Server

Ora è possibile visualizzare il Server creato utilizzando la seguente richiesta:

curl -X GET https://api.seeweb.it/ecs/v2/servers/ec205827 \
  -H 'Authorization: Bearer *il tuo token*'   

E ottenendo:

{
  "status": "ok",
  "server": {
    "name": "ec205827",
    "ipv4": "213.171.185.95",
    "ipv6": "2001:4b7e:0100:025d::1",
    "group": null,
    "plan": "eCS1",
    "plan_size": {
      "core": "1",
      "ram": "1024",
      "disk": "20",
      "gpu": "0",
      "gpu_label": null,
      "host_type": "ECS"
    },
    "reserved_plans": [],
    "is_reserved": false,
    "reserved_until": "",
    "support": null,
    "location": "it-fr2",
    "location_label": "Frosinone",
    "notes": "my-first-server",
    "so": "ubuntu-2204",
    "so_label": "Ubuntu Linux 22.04 LTS",
    "creation_date": "2024-10-24T14:51:03.360567+00:00",
    "deletion_date": null,
    "active_flag": true,
    "status": "Booted",
    "progress": 100,
    "api_version": "v4",
    "user": "seeweb_test",
    "virttype": "KVM"
  }
}

Cosa fare se lo stato del Server è 'Customizing'

Se si va a verificare lo 'status' del Server appena l'azione viene segnata come 'completed' il Server potrebbe essere ancora nello stato 'Customizing'. Questo stato indica che il Server è stato creato ma è ancora in corso una personalizzazione su di esso, Alcune funzioni potrebbero quindi non essere disponibili, basta aspettare qualche minuto e attendere che lo stato passi a 'Booted'.