Installera doctl - cli för digitalocean
T.ex. brew install doctl
Generera en apinyckel med läs och skrivrättigheter (READ/write access) för att komma åt VPS:en via terminal
Hemsidan varnar dig att du endast kommer se denna nyckel på skärmen en gång.
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.
doctl auth init
- doctl kommer fråga efter den API-accesstoken som vi precis genererat.
Klistra in din token
doctl
validerar din token och om allting gick bra får du OK
Om något strular kan du läsa mer om att autentisera doctl
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
Ä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®ion=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.
doctl compute region list
- Available regions. Use the string in the “Slug” column.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
#!/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! :)
Dokumentation - kom igång med doctl
Redo för nästa steg?
Lägg till användare