digitalocean cli

Installera doctl

Installera doctl - cli för digitalocean
T.ex. brew install doctl

Generera api-nyckel

Generera en apinyckel med läs och skrivrättigheter (READ/write access) för att komma åt VPS:en via terminal

1. Gå till menyvalet API

menyvalet API

2. Klicka på Generate New Token

menyvalet API

3. Välj ett namn, förslagsvis namnet på den enhet, t.ex. laptopen som du kommer använda nyckeln på.

api key name generera token
Klicka sedan på Generate Token.

4. Kopiera och spara undan din API-nyckel

Hemsidan varnar dig att du endast kommer se denna nyckel på skärmen en gång.

copy and save key warning copy and save key warning

Denna nyckel kommer du använda för att autentisera dig när vi använder doctl. Jag har sparat min i keepassx . Ifall jag skulle vilja använda den igen. Du kan också generera nya/fler nycklar om du byter dator eller vill använda nyckel i ett script.

Autentisera appen

doctl auth init - doctl kommer fråga efter den API-accesstoken som vi precis genererat.

doctl auth init

Klistra in din token

doctl validerar din token och om allting gick bra får du OK
doctl auth init

Om något strular kan du läsa mer om att autentisera doctl


Aktivera ny VPS

Jag vill snabbt och enkelt kunna “spinna upp” en ny VPS (“droplet”). Testar denna ifrån ett exempel i guiden.

doctl compute droplet create test --size 1gb --image debian-8-x64 --region nyc1

Det fungerade! doctl svarade med

ID          Name    Memory    VCPUs    Disk    Region    Image             Status
73438199    test    1024      1        30      nyc1      Debian 8.9 x64    new

Radera VPS

Är lika enkelt att radera?

doctl compute droplet delete 70950203

Den frågar:
Warning: Are you sure you want to delete droplet(s) (y/N) ?

svarade y

Listar droplets för att se att den är bortplockad.

doctl compute droplet list - japp, borta!

Klurar redan på vad som kan vara ett bra alias för doctl compute droplet - dcd kanske? Lägger till alias dcd='doctl compute droplet' i min ~/.bash_profile

Vad vill vi ha för inställningar?

--size   [ storlek på ram minne 1gb känns som rimligt minimum om jag ska köra flera mindre projekt på samma ]
--image  [ operativsystem debian version 9 - för jag har uppfattat att debian verkar stabilare än ubuntu]
--region [ i vilket datacenter i världen din vps finns - välj så nära dina användare som möjligt. fra = frankfurt ]

Vad jag vill för inställningar lyckades jag lista ut genom att göra mina val i webbgränssnittet, och sedan tittade jag i urlen som ändrades iom att jag gjorde val: https://cloud.digitalocean.com/droplets/new?i=b07b72&size=1gb&region=fra1&distro=debian&distroImage=debian-9-x64

doctl compute droplet create test --size 1gb --image debian-9-x64 --region fra1

Hmm, jag fick Error: POST https://api.digitalocean.com/v2/droplets: 422 You specified an invalid region for Droplet creation. Så fra som visades i webbgränssnittet (url:en) kunde jag inte välja.

Så vi kör det! Aha! doctl compute region list ger oss:

Slug    Name               Available
nyc1    New York 1         true
sfo1    San Francisco 1    true
ams2    Amsterdam 2        true
sgp1    Singapore 1        true
lon1    London 1           true
nyc3    New York 3         true
ams3    Amsterdam 3        true
fra1    Frankfurt 1        true
tor1    Toronto 1          true
sfo2    San Francisco 2    true
blr1    Bangalore 1        true

Det är alltså fra1 jag vill ha! (i mitt huvud hör jag “Det är Robin Hood jag vill ha! … men jag hittade inget klipp på youtube som gick direkt till det…)

doctl compute droplet create test --size 1gb --image debian-9-x64 --region fra1

Läckert! Fungerade.

Då är ju nästa fråga - vilket IP-nummer har denna droplet? Kan jag logga in på den? Har mina ssh-nycklar lagts in? Läser på lite i manualen Hittat get droplet_id Get details for a particular Droplet.

Så vi testar!

doctl compute droplet get <DROPLETID>

Byt ut DROPLETID till det id din droplet fick!

För att se det igen kan du köra

doctl compute droplet list

… den frågar efter ett lösenord.. ssh-nycklarna har inte lagts in. Tillbaka till manualen.

Skicka med ssh-nyckel med –ssh-keys

doctl compute droplet create test --size 1gb --image debian-9-x64 
--region fra1 --ssh-keys 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 - byter du ut mot vad du faktiskt har för id på de ssh-nycklar som du har lagt till hos digitalocean.

Testade mig fram och lyckades lägga till flera ssh-nycklar såhär:

doctl compute droplet create test --size 1gb --image debian-9-x64 
--region fra1 --ssh-keys 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
--ssh-keys 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

bash script för att skapa upp droplet

#!/bin/bash
# kom ihåg att köra chmod +x för att köra filen!
doctl compute droplet create test --size 1gb --image debian-9-x64 
--region fra1 --ssh-keys 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
--ssh-keys 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

# I framtiden
# Fånga upp droplet id när droplet skapats ( inte just nu )
# Visa IP-nummer för den droplet som skapats ( inte just nu )

Om du får ett felmeddelande i stil med “access denied key missmatch”, så kan det vara så att du tidigare kopplat upp dig mot samma ip-nummer, du kanske kört scriptet några gånger, och att den då klagar på att det redan finns “en annan key” som inte matchar i din “known_hosts”-fil. Den hittar du i: ~/.ssh/known_hosts. Om du går in där (kör t.ex. vim ~/.ssh/known_hosts) ta bort gamla rader, så lirar allting igen nästa gång!

Du kan också använda doctl för att snabbt och enkelt radera en VPS. Då behöver du bara betala för de timmar du faktiskt använder den - perfekt medan du håller på att lära dig! :)

Resurser

Dokumentation - kom igång med doctl


Redo för nästa steg?
Lägg till användare

Vem ligger bakom denna kurs?

Victoria Wagman som har arbetat som lärare i webbutveckling, och idag arbetar som programmerare hos 46elks.

Detta material byggs upp lite i taget.