ITA - Hetznercloud
February 2021 (955 Words, 6 Minutes)
Introduzione
Il tool hcloud è un’interfaccia a riga di comando per interagire con Hetzner Cloud.
Installazione e uso
Installazione
Il tool è disponibile per molte piattaforme all’interno dei repository.
Operating System | Comando |
---|---|
Debian (>= bullseye) | apt install hcloud-cli |
Ubuntu (>= 19.04) | apt install hcloud-cli |
Arch Linux | pacman -Syu hcloud |
Void Linux | xbps-install -Syu hcloud |
Gentoo Linux | emerge hcloud |
Per fortuna il mio laptop esegue Fedora dandomi l’opportunità di compilarlo e installarlo manualmente.
Il tool necessita di go quindi lo installo con:
sudo dnf install golang-bin
A poi ho buildato e installato il tool con
go get -u github.com/hetznercloud/cli/cmd/hcloud
Alla fine del processo nella mia home è presente la cartelle :
$ tree go -L 2
go
├── bin
│ └── hcloud
└── src
├── github.com
└── golang.org
4 directories, 1 file
Controllando il mio env :
$ echo $PATH
/home/stethewwolf/.local/bin:/home/stethewwolf/bin:/usr/share/Modules/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
è chiaro che la bisogna aggiustare il mio bashrc:
# User specific go environment
if ! [["$PATH" =~ "$HOME/.go/bin:"]]
then
PATH="$HOME/go/bin:$PATH"
fi
a questo non mi resta che ricaricare il file rc della console e provare il comando:
$ source .bashrc
$ hcloud
A command-line interface for Hetzner Cloud
Usage:
hcloud [command]
Available Commands:
certificate Manage certificates
completion Output shell completion code for the specified shell
context Manage contexts
datacenter Manage datacenters
floating-ip Manage Floating IPs
help Help about any command
image Manage images
iso Manage ISOs
load-balancer Manage Load Balancers
load-balancer-type Manage Load Balancer types
location Manage locations
network Manage networks
server Manage servers
server-type Manage server types
ssh-key Manage SSH keys
version Print version information
volume Manage Volumes
Flags:
-h, --help help for hcloud
--poll-interval duration Interval at which to poll information, for example action progress (default 500ms)
Use "hcloud [command] --help" for more information about a command.
Esempio d’uso
Ottenere il tocken API
Per poter usare questo tool è necessario possedere un account hetzner, una volta loggato è necessario scegliere un progetto, nella sezione “Security” è possibile generare il token API per il progetto che permetterà all’utente di interagire in maniera sicura con l’infrastruttura cloud.
Creare il proprio context
Per poter interaggire con il cloud è necessario creare un contesto locale che corrisponda a quello remoto.
$ hcloud context create stobi
Token:
Context stobi created and activated
Per vedere la lista dei contensti attivi si può usare il seguente comando:
$ hcloud context list
ACTIVE NAME
* stobi
Interagire con il cloud
Selezionare il context
La prima operazione da fare è selezionare il context da usare:
$ hcloud context use stobi
Listare i server disponibili
$ hcloud server list
ID NAME STATUS IPV4 IPV6 DATACENTER
6468542 blot running 116.203.236.212 2a01:4f8:c0c:fbbe::/64 nbg1-dc3
9802136 oer running 95.216.196.57 2a01:4f9:c010:5e6b::/64 hel1-dc2
Creare un server
$ hcloud image list
ID TYPE NAME DESCRIPTION IMAGE SIZE DISK SIZE CREATED DEPRECATED
1 system ubuntu-16.04 Ubuntu 16.04 - 5 GB Mon Jan 15 12:34:45 CET 2018 -
2 system debian-9 Debian 9 - 5 GB Mon Jan 15 12:34:45 CET 2018 -
3 system centos-7 CentOS 7 - 5 GB Mon Jan 15 12:34:45 CET 2018 -
168855 system ubuntu-18.04 Ubuntu 18.04 - 5 GB Wed May 2 13:02:30 CEST 2018 -
5924233 system debian-10 Debian 10 - 5 GB Mon Jul 8 08:35:48 CEST 2019 -
8356453 system centos-8 CentOS 8 - 5 GB Mon Oct 7 15:18:43 CEST 2019 -
15512617 system ubuntu-20.04 Ubuntu 20.04 - 5 GB Thu Apr 23 19:55:14 CEST 2020 -
15759618 system fedora-32 Fedora 32 - 5 GB Wed Apr 29 12:32:02 CEST 2020 -
25369365 system fedora-33 Fedora 33 - 5 GB Mon Nov 2 15:36:04 CET 2020 -
$ hcloud server create --image fedora-33 --type cx11 --name my-test
4s [=====================================] 100.00%
Waiting for server 10145063 to have started
... done
Server 10145063 created
IPv4: 135.181.44.102
Root password: ********************
Sull’interfaccia web del portale dovrebbe comparire:
Avviare e stoppare un server
$ hcloud server list
ID NAME STATUS IPV4 IPV6 DATACENTER
6468542 blot running 116.203.236.212 2a01:4f8:c0c:fbbe::/64 nbg1-dc3
9802136 oer running 95.216.196.57 2a01:4f9:c010:5e6b::/64 hel1-dc2
10145063 my-test running 135.181.44.102 2a01:4f9:c010:d6f8::/64 hel1-dc2
$ hcloud server poweroff 10145063
1s [=====================================] 100.00%
Server 10145063 stopped
$ hcloud server list
ID NAME STATUS IPV4 IPV6 DATACENTER
6468542 blot running 116.203.236.212 2a01:4f8:c0c:fbbe::/64 nbg1-dc3
9802136 oer running 95.216.196.57 2a01:4f9:c010:5e6b::/64 hel1-dc2
10145063 my-test off 135.181.44.102 2a01:4f9:c010:d6f8::/64 hel1-dc2
$ hcloud server poweron 10145063
2s [=====================================] 100.00%
Server 10145063 started
$ hcloud server list
ID NAME STATUS IPV4 IPV6 DATACENTER
6468542 blot running 116.203.236.212 2a01:4f8:c0c:fbbe::/64 nbg1-dc3
9802136 oer running 95.216.196.57 2a01:4f9:c010:5e6b::/64 hel1-dc2
10145063 my-test running 135.181.44.102 2a01:4f9:c010:d6f8::/64 hel1-dc2
Ottenere informazioni su un server.
$ hcloud server describe my-test
ID: 10145375
Name: my-test
Status: running
Created: Fri Feb 19 08:26:29 CET 2021 (1 minute ago)
Server Type: cx11 (ID: 1)
ID: 1
Name: cx11
Description: CX11
Cores: 1
CPU Type: shared
Memory: 2 GB
Disk: 20 GB
Storage Type: local
Public Net:
IPv4:
IP: 135.181.44.102
Blocked: no
DNS: static.102.44.181.135.clients.your-server.de
IPv6:
IP: 2a01:4f9:c010:d6f8::/64
Blocked: no
Floating IPs:
No Floating IPs
Private Net:
No Private Networks
Volumes:
No Volumes
Image:
ID: 25369365
Type: system
Status: available
Name: fedora-33
Description: Fedora 33
Image size: -
Disk size: 5 GB
Created: Mon Nov 2 15:36:04 CET 2020 (3 months ago)
OS flavor: fedora
OS version: 33
Rapid deploy: yes
Datacenter:
ID: 3
Name: hel1-dc2
Description: Helsinki 1 DC 2
Location:
Name: hel1
Description: Helsinki DC Park 1
Country: FI
City: Helsinki
Latitude: 60.169855
Longitude: 24.938379
Traffic:
Outgoing: 0 B
Ingoing: 0 B
Included: 20 TiB
Backup Window: Backups disabled
Rescue System: disabled
ISO:
No ISO attached
Protection:
Delete: no
Rebuild: no
Labels:
No labels
Cancellare un server
Il primo comando serve per listare l’elenco dei server già instanziati
$ hcloud server list
ID NAME STATUS IPV4 IPV6 DATACENTER
6468542 blot running 116.203.236.212 2a01:4f8:c0c:fbbe::/64 nbg1-dc3
9802136 oer running 95.216.196.57 2a01:4f9:c010:5e6b::/64 hel1-dc2
10145063 my-test running 135.181.44.102 2a01:4f9:c010:d6f8::/64 hel1-dc2
Per cancellare un instanza si usa il comando seguente ( dove il codice finale corrisponde all’id riportato dall’output della lista)
$ hcloud server delete 10145063
Server 10145063 deleted
Come ultimo passo richiedo la lista dei server per controllare l’effettiva cancellazione.
$ hcloud server list
ID NAME STATUS IPV4 IPV6 DATACENTER
6468542 blot running 116.203.236.212 2a01:4f8:c0c:fbbe::/64 nbg1-dc3
9802136 oer running 95.216.196.57 2a01:4f9:c010:5e6b::/64 hel1-dc2
Riferimenti
Quest'opera è distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale Theme Moonwalk