Get Rewarded! We will reward you with up to €50 credit on your account for every tutorial that you write and we publish!

Как использовать Hetzner Cloud CLI

profile picture
Author
Lukas Kämmerling
Published
2019-03-11
Time to read
7 minutes reading time

Введение

Из этого руководства вы узнаете как использовать hcloud-cli. Оно включает в себя создание, просмотр и удаление серверов и более сложные сценарии, такие как подключение тома к серверу.

Необходимо

  • Токен Hetzner Cloud API

    • Базовые знания о Hetzner Cloud
      • Предполагается, что вы знаете что такое сервер, образ, тип сервера и том.
    • Ознакомтесь с Hetzner Cloud Console по адресу https://console.hetzner.cloud, выберите проект и создайте новый API-токен.
  • установленный hcloud-cli

    • Windows, FreeBSD
      • Загрузить предподготовленный двоичный файл можно отсюда Github
    • Linux
      • Используем Homebrew
        • brew install hcloud
      • Загрузить предподготовленный двоичный файл можно отсюда Github
    • MacOS
      • Используем Homebrew
        • brew install hcloud
      • Загрузить предподготовленный двоичный файл можно отсюда Github

Шаг 1 — Базовое использование

После установки вы должны открыть терминал и просто набрать:

hcloud

Вы должны увидеть обзор всех доступных команд, таких как server, volume или context. Вы можете посмотреть текущую версию hcloud-cli, выполнив команду:

hcloud version

Большинство команд имеют некоторые подкоманды, такие как:

hcloud server list

Вы можете просмотреть все доступные подкоманды какой-то команды, просто набрав эту команду. Ниже пример вывода для команды hcloud server:

Usage:
  hcloud server
  hcloud server [command]

Available Commands:
  add-label          Add a label to a server
  attach-iso         Attach an ISO to a server
  change-type        Change type of a server
  create             Create a server
  create-image       Create an image from a server
  delete             Delete a server
  describe           Describe a server
  detach-iso         Detach an ISO from a server
  disable-backup     Disable backup for a server
  disable-protection Disable resource protection for a server
  disable-rescue     Disable rescue for a server
  enable-backup      Enable backup for a server
  enable-protection  Enable resource protection for a server
  enable-rescue      Enable rescue for a server
  list               List servers
  poweroff           Poweroff a server
  poweron            Poweron a server
  reboot             Reboot a server
  rebuild            Rebuild a server
  remove-label       Remove a label from a server
  reset              Reset a server
  reset-password     Reset the root password of a server
  set-rdns           Change reverse DNS of a server
  shutdown           Shutdown a server
  ssh                Spawn an SSH connection for the server
  update             Update a server

  Flags:
  -h, --help   help for server

Global Flags:
      --poll-interval duration   Interval at which to poll information, for example action progress (default 500ms)

Use "hcloud server [command] --help" for more information about a command.

Если вы хотите увидеть все доступные параметры подкоманды вы всегда можете использовать опцию --help. Ниже пример вывода команды hcloud server list --help:

Displays a list of servers.

Output can be controlled with the -o flag. Use -o noheader to suppress the
table header. Displayed columns and their order can be set with
-o columns=backup_window,datacenter (see available columns below).

Columns:
 - backup_window
 - datacenter
 - id
 - ipv4
 - ipv6
 - labels
 - location
 - locked
 - name
 - protection
 - rescue_enabled
 - status
 - type
 - volumes

Usage:
  hcloud server list [FLAGS]

Flags:
  -h, --help                 help for list
  -o, --output stringArray   output options: noheader|columns=...
  -l, --selector string      Selector to filter by labels

Global Flags:
      --poll-interval duration   Interval at which to poll information, for example action progress (default 500ms)

Шаг 2 - Добавление контекста

Прежде чем вы сможете начать использовать hcloud-cli, вам необходимо сделать доступным контекст. Контекст - это специальный API токен из Cloud консоли Hetzner. Мы выбрали context в качестве ссылки на kubectl для Kubernetes. Таким образом, вы можете принять, что в нашем hcloud-cli контекст является проектом в Hetzner Cloud Console.

Вы можете добавить столько контекстов, сколько вам необходимо.

Создадим hcloud-cli контекст командой hcloud context create и присвоим ему любое имя.

hcloud context create my-super-project

Эта команда создаст новый контекст с именем my-super-project. После этого необходимо будет ввести ваш API токен. Имейте в виду, что пока вы вводите токен, он не виден. После ввода токена нажмите Enter. Вы должны увидеть подтверждающее сообщение Context my-super-project created and activated.

Увидеть активный контекст вы можете выполнив команду:

hcloud context list

Вывод команды должен быть примерно следующий:

ACTIVE   NAME
*        my-super-project

Поздравляю! Вы создали свой первый контекст, переходим к следующему шагу!

Шаг 3 - Добавление сервера

Вы уже настроили свой первый контекст. Теперь создадим новый сервер командой hcloud server create!

Прежде всего необходимо решить какой сервер вы хотите создать. Список всех доступных серверов можно вывести командой:

hcloud server-type list

Вывод команды будет аналогичен следующему:

ID   NAME        CORES   MEMORY     DISK     STORAGE TYPE
1    cx11        1       2.0 GB     20 GB    local
[...]

Мы создадим самый простой сервер CX11. Пока держим это в памяти, эта информация будет необходима чуть позже.

Нам понадобится образ системы, на котором будет основан сервер. В Hetzner Cloud есть различные образы систем. Просмотреть все доступные образы можно командой hcloud image list.

Вы можете взять любой образ, выберем, например, ubuntu-18.04.

Теперь у нас есть все, что необходимо для создания базового сервера!

Команда для создания сервера hcloud server create, если вы хотите создать сервер типа CX11 из образа ubuntu-18.04 просто выполните следующую команду в консоли:

hcloud server create --image ubuntu-18.04 --type cx11 --name my-cool-server

Круто! Только что вы создали сервер my-cool-server! После окончания его создания вы должны увидеть примерно следующее:

Waiting for server 1234 to have started... done
Server 1234 created
IPv4: <10.0.0.1>
Root password: TmRsdC3NCgHAbnf9f3rq

Теперь вы можете подключиться к нему через SSH, используя пароль root! Для безопасности всегда рекомендуется использовать авторизацию по ключам setup key based ssh-access.

Шаг 4 - Описание сервера

На предыдущем шаге мы создали сервер. Чтобы просмотреть о нем более подробную информацию можно использовать команду hcloud server describe.

hcloud server describe my-cool-server

Подробная информация о сервере:

ID:        1234
Name:        my-cool-server
Status:        running
Created:    Wed Mar  6 15:17:22 CET 2019 (17 minutes ago)
Server Type:    cx11 (ID: 1)
  ID:        1
  Name:        cx11
  Description:    CX11
  Cores:    1
  Memory:    2 GB
  Disk:        20 GB
  Storage Type:    local
Public Net:
  IPv4:
    IP:        <10.0.0.1>
    Blocked:    no
    DNS:    static.10.101.203.116.clients.your-server.de
  IPv6:
    IP:        <2001:db8::/64>
    Blocked:    no
  Floating IPs:
    No Floating IPs
Volumes:
  - ID:        1986518
    Name:    my-volume
    Size:    123 GB
Image:
  ID:        168855
  Type:        system
  Status:    available
  Name:        ubuntu-18.04
  Description:    Ubuntu 18.04
  Image size:    -
  Disk size:    5 GB
  Created:    Wed May  2 13:02:30 CEST 2018 (10 months ago)
  OS flavor:    ubuntu
  OS version:    18.04
  Rapid deploy:    yes
Datacenter:
  ID:        2
  Name:        nbg1-dc3
  Description:    Nuremberg 1 DC 3
  Location:
    Name:        nbg1
    Description:    Nuremberg DC Park 1
    Country:        DE
    City:        Nuremberg
    Latitude:        49.452102
    Longitude:        11.076665
Traffic:
  Outgoing:    0 B
  Ingoing:    0 B
  Included:    22 TB
Backup Window:    Backups disabled
Rescue System:    disabled
ISO:
  No ISO attached
Protection:
  Delete:    no
  Rebuild:    no
Labels:
  No labels

Шаг 5 - Список всех серверов

Вы хотите просмотреть все серверы в вашем контексте? Это можно сделать с помощью команды hcloud server list. После выполнения команды вы должны увидеть примерно следующее:

ID        NAME             STATUS    IPV4             IPV6                      DATACENTER
1234      my-cool-server   running   <10.0.0.1>       <2001:db8::/64>           nbg1-dc3

Шаг 6 - Удаление сервера

Хотите удалить сервер? Нет проблем! Для этого существует команда hcloud server delete!

hcloud server delete my-cool-server

После этого вы получите подтверждение:

Server 1234 deleted

Шаг 7 - Создание Тома и подключение его к серверу

В предыдущих шагах мы рассмотрели как можно создавать, просматривать и удалять серверы. Теперь я хочу показать вам немного более сложный пример. Мы создадим сервер, а затем создадим Том и подключим его к серверу!

Прежде всего создаем сервер:

hcloud server create --image ubuntu-18.04 --type cx11 --name my-cool-server
Waiting for server 1234 to have started... done
Server 1234 created
IPv4: <10.0.0.1>
Root password: TmRsdC3NCgHAbnf9f3rq

Теперь создаем Том. Команда создания Тома похожа на команду создания сервера:

hcloud volume create --size 123 --name my-volume --server my-cool-server

С помощью данной команды мы создадим Том размером 123 Гб с именем my-volume и примонтируем его к серверу my-cool-server.

У вас должен быть похожий вывод:

   1s [====================================================================] 100%
Waiting for volume 123 to have been attached to server 1234... done
Volume 123 created

Теперь вы можете отмонтировать том от сервера, выполнив команду:

hcloud volume detach my-volume

Поздравляю! Вы создали Том и примонтировали его к серверу!

Заклчение

Мы разобрали как использовать hcloud-cli. Мы рассмотрели как создавать, просматривать и удалять серверы, а также как выполнять более сложные сценарии, такие как присоединение Тома к серверу. Вы можете вывести дополнительную справку, добавляя --help к каждой команде. Если вам нужна более подробная информация, просто задайте вопрос в нашем Github Репозитории.

Want to contribute?

Get Rewarded: Get up to €50 in credit! Be a part of the community and contribute. Do it for the money. Do it for the bragging rights. And do it to teach others!

Report Issue
Try Hetzner Cloud

Get €20/$20 free credit!

Valid until: 31 December 2024 Valid for: 3 months and only for new customers
Get started
Want to contribute?

Get Rewarded: Get up to €50 credit on your account for every tutorial you write and we publish!

Find out more