Введение
Из этого руководства вы узнаете как использовать hcloud-cli. Оно включает в себя создание, просмотр и удаление серверов и более сложные сценарии, такие как подключение тома к серверу.
Необходимо
-
Токен Hetzner Cloud API
- Базовые знания о Hetzner Cloud
- Предполагается, что вы знаете что такое сервер, образ, тип сервера и том.
- Ознакомтесь с Hetzner Cloud Console по адресу https://console.hetzner.cloud, выберите проект и создайте новый API-токен.
- Базовые знания о Hetzner Cloud
-
установленный hcloud-cli
Шаг 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 cx23 1 2.0 GB 20 GB local
[...]Мы создадим самый простой сервер CX23. Пока держим это в памяти, эта информация будет необходима чуть позже.
Нам понадобится образ системы, на котором будет основан сервер. В Hetzner Cloud есть различные образы систем. Просмотреть все доступные образы можно командой hcloud image list.
Вы можете взять любой образ, выберем, например, ubuntu-24.04.
Теперь у нас есть все, что необходимо для создания базового сервера!
Команда для создания сервера hcloud server create, если вы хотите создать сервер типа CX23 из образа ubuntu-24.04 просто выполните следующую команду в консоли:
hcloud server create --image ubuntu-24.04 --type cx23 --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: cx23 (ID: 1)
ID: 1
Name: cx23
Description: CX23
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-24.04
Description: Ubuntu 24.04
Image size: -
Disk size: 5 GB
Created: Wed May 2 13:02:30 CEST 2018 (10 months ago)
OS flavor: ubuntu
OS version: 24.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-24.04 --type cx23 --name my-cool-serverWaiting 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 Репозитории.