Blog di Un Utente Linux

Hetznercloud

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:

hetzner_server_created

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

Powered by Soopr   •  Theme  Moonwalk